工具栏作为片段中的操作栏
Posted
技术标签:
【中文标题】工具栏作为片段中的操作栏【英文标题】:Toolbar as action bar in Fragment 【发布时间】:2017-01-23 14:22:36 【问题描述】:在我的应用程序中,我使用 NoActionBar 样式,并且我想将操作栏添加到我的片段之一。
在活动中我可以这样做:
public class MyActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@Override
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
如何在片段中做到这一点?
我试过了:
@Override
public void onCreate(Bundle savedInstanceState)
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
inflater.inflate(R.menu.menu_main, menu);
super.onCreateOptionsMenu(menu, inflater);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
Toolbar actionBar = (Toolbar) getActivity().findViewById(R.id.my_app_bar);
((AppCompatActivity) getActivity()).setSupportActionBar(actionBar);
return inflater.inflate(R.layout.fragment_training, container, false);
但它不起作用。
UPD 我认为这一行的问题:
Toolbar actionBar = (Toolbar) getActivity().findViewById(R.id.my_app_bar);
((AppCompatActivity) getActivity()).setSupportActionBar(actionBar);
【问题讨论】:
您能否进一步解释一下您所说的不起作用?只是没有出现该栏吗?有没有错误? Bar只是没有出现...这意味着工具栏(来自片段布局的my_app_bar)出现了。但是这个工具栏没有填充来自 main_menu 的项目 【参考方案1】:老问题)),应该是:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
//Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.my_app_bar);
//((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
//return inflater.inflate(R.layout.fragment_training, container, false);
View v = inflater.inflate(r.layout.fragment_training, container, false);
Toolbar toolbar = (Toolbar) v.findviewbyid(r.id.my_app_bar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
return v;
【讨论】:
【参考方案2】:也许你需要,
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle();
这 2 个链接将对您有所帮助, Set up toolbar as actionbar in fragment
How to get Toolbar from fragment?
希望这会有所帮助。
【讨论】:
设置字幕是什么意思?只是设置文本?以上是关于工具栏作为片段中的操作栏的主要内容,如果未能解决你的问题,请参考以下文章