Set up toolbar as actionbar in fragment

杀马特。学长 韩版系。学妹 提交于 2019-12-02 21:41:53

Now ActionBarActivity is deprecated so You need to cast your activity from getActivity() to AppCompatActivity first. Here's an example:

((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle();

The reason you have to cast it is because getActivity() returns a FragmentActivity and you need an AppCompatActivity

try:

 ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
dominicoder

ActionBar is an Activity property. If you want to set a toolbar from a given fragment as the ActionBar of the owning Activity, then get the Activity that owns the fragment (Fragment.getActivity()) and set its ActionBar property.

Then juse use the same setDisplayHomeAsUpEnabled method you mentioned to begin with on the ActionBar after setting your toolbar as the ActionBar to get the back / up button.

You will obviously have to manage this carefully if your app has multiple fragments within that Activity.

Ravi

Use

((ActionBarActivity) getActivity()).getSupportActionBar().setSubtitle("Your Title");

If you use Kotlin, try this:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, state: Bundle?): View? { 
        (activity as AppCompatActivity).setSupportActionBar(your_toolbar)
        setHasOptionsMenu(true)

        return inflater.inflate(R.layout.your_layout, container, false)
}


override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
        inflater?.inflate(R.menu.your_menu, menu)
}
Micheal Mavericks

Lets say the Activity holding the fragment is MainActivity.

Do

MainActivity main = (MainActivity)getActivity();
//You can access all public variable and methods of MainActivity.
//simply call 
main.setSupportActionBar(toolbar)
main.getSupportActionBar.setTitle("title");
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!