Fragment中添加toolbar-menu

2024-05-02 23:18
文章标签 fragment menu toolbar

本文主要是介绍Fragment中添加toolbar-menu,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

应用中常常会遇到这种需求:

Activity中有不同的Fragment,如MainActivity,二不同的Fragment要求有不同的toolbar,menu。

那么如何自定义Fragment的toolbar呢?

1. 在fragment的xml中添加toolbar;

2. 在fragment的onCreate方法中添加setHasOptionsMenu(true);

@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setHasOptionsMenu(true);//加上这句话,menu才会显示出来}

3. 初始化toolbar.

mToolbarContact = view.findViewById(R.id.tool_bar_contact);
((AppCompatActivity) getActivity()).setSupportActionBar(mToolbarContact);

4.重写onCreateOptionsMenu:

 @Overridepublic void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {//menu.clear();//这句话没用,不必加inflater.inflate(R.menu.menu_contacts, menu);super.onCreateOptionsMenu(menu, inflater);}

5. 重写onOptionsItemSelected:

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();if (id == R.id.menu_add_contact) {T.showToastBro(getActivity(), item.getTitle().toString());}if (id == R.id.menu_nearby_businesses) {T.showToastBro(getActivity(), item.getTitle().toString());}return super.onOptionsItemSelected(item);}

然后发现fragment的menu和activity的menu重叠。

  • 问题出在第3步,要改为:

mToolbarContact = view.findViewById(R.id.tool_bar_contact);
mToolbarContact.inflateMenu(R.menu.menu_contacts);
  • 然后发现menu的点击事件不相应。即使已经加了setHasOptionsMenu(true);

第4、5都不用重写,要toolbar代码实现点击事件

mToolbarContact = view.findViewById(R.id.tool_bar_contact);
mToolbarContact.inflateMenu(R.menu.menu_contacts);
mToolbarContact.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {int id = item.getItemId();if (id == R.id.menu_add_contact) {T.showToastBro(getActivity(), item.getTitle().toString());}if (id == R.id.menu_nearby_businesses) {T.showToastBro(getActivity(), item.getTitle().toString());}return true;}});

解决!

这篇关于Fragment中添加toolbar-menu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955348

相关文章

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

Avalonia 常用控件二 Menu相关

1、Menu 添加代码如下 <Button HorizontalAlignment="Center" Content="Menu/菜单"><Button.Flyout><MenuFlyout><MenuItem Header="打开"/><MenuItem Header="-"/><MenuItem Header="关闭"/></MenuFlyout></Button.Flyout></B

【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法

在Unity和图形编程中,片段着色器(Fragment Shader)是渲染管线中的一个阶段,负责计算屏幕上每个像素(片段)的颜色和特性。片段着色器通常在顶点着色器和任何几何处理之后运行,是决定最终像素颜色的关键步骤。 Fragment Shader的概念: 像素处理:片段着色器处理经过顶点着色器和几何着色器处理后,映射到屏幕空间的像素。颜色计算:它计算每个像素的颜色值,这可能包括纹理采样、光

使用ViewPager+Fragment出现indexoutofboundexception

今天在使用ViewPager与Fragment的时候,出现了indexoutofboundexception  后来才知道ViewPager会自动缓存1页内的数据,如果你滑动过快,有时候快速的切换自动清除所有的Fragment,使你装载Fragment的ArrayList为空,所以出现了indexoutofboundexception  //这是我装载Fragment的ArrayList

Viewpager+Fragment滑动更改ListView数据和设置title文字的变化

设置ListView的数据更改只有几行代码,不用说了; 设置title的文字的变化:给ViewPager设置监听器,Viewpager变化的时候,给文字添加渐变,滑动完成后设置文字最终的大小 主要代码如下: /** * ViewPager切换监听方法 */public ViewPager.OnPageChangeListener pageListener = new ViewP

论坛开源项目推荐(12.25):菜单(Menu)

转自  http://www.cocoachina.com/applenews/devnews/2013/1225/7608.html 更多代码可到CocoaChina代码库查看:http://code.cocoachina.com/   SvpplyTable(可折叠可张开的菜单动画) 允许你简单地创建可折叠可张开的菜单动画效果,灵感来自于Svpply app。不同表格项

今天遇到IQKeyboardManager的ios11 不显示toolbar上面的问题

IQKeyboardManager ios11 不显示 toolbar的文字 iOS11的UIToolbar 有一个UIToolbarContentView的子控件,但是它在view的最顶层,事件响应不了,解决办法就是手动执行一次

多个viewpager导致Fragment不显示的问题

转自:http://www.trinea.cn/android/android-source-code-analysis/multi-viewpager-to-fragment-not-init/ 场景:封装后自定义的viewpager,在同一个Activity页面添加多个时,由于id相同,会导致viewpager不显示 原因: 多个ViewPager引发的Fragment未初始化 本文主

ViewPager+fragment回调Activity

业务描述 ViewPage中有四个Fragment,每一个Fragment中有一个按钮,给他门设置一个回调,在主Activity中操作具体的业务 public class CabinKindFragment extends Fragment implements View.OnClickListener{@BindView(R.id.begin)Button btnBegin;//定义用来与外部

Fragment使用(1)

Fragment 使用(1) 参考: 片段:https://developer.android.com/guide/components/fragments.html#Managing Building a Dynamic UI with Fragments:https://developer.android.com/training/basics/fragments/index.htm