Fragment中使用Toolbar
来源:互联网 发布:ansys软件培训 编辑:程序博客网 时间:2024/05/15 19:20
在应用清单中,将 元素设置为使用 appcompat 的其中一个 NoActionBar 主题。
- 使用原生的主题
<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar">
- 或者在需要自己先在 res/values/styles.xml 里增加一个 Theme
<style name="MyAppTheme" parent="Theme.AppCompat"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <activity android:name=".MainActivity" android:theme="@style/MyAppTheme">
将Fragment加入Activity
Activity布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.du.toolbarinfragment.MainActivity"> <FrameLayout android:id="@+id/fg_main_container" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>
MainActivity文件
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fragmentManager = getSupportFragmentManager(); Fragment fragment =fragmentManager.findFragmentById(R.id.fg_main_container); if (fragment == null) { fragment = new FragmentWithToolbar(); fragmentManager.beginTransaction() .add(R.id.fg_main_container, fragment) .commit(); } } }
向Fragment的布局添加一个 Toolbar。
xml文件
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_height="?attr/actionBarSize" android:layout_width="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="?attr/actionBarSize" android:layout_width="match_parent"> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout>
向Toolbar中添加操作按钮
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="编辑" android:icon="@drawable/ic_edit_black_24dp"/> <item android:title="购物车" android:icon="@drawable/ic_add_shopping_cart_black_24dp"/> </menu>
在Fragment中获取Toolbar
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { AppCompatActivity appCompatActivity= (AppCompatActivity) getActivity(); Toolbar toolbar= (Toolbar) appCompatActivity.findViewById(R.id.toolbar); appCompatActivity.setSupportActionBar(toolbar); super.onActivityCreated(savedInstanceState); }
Fragment获取Toolbar获取menu
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.toolbar_menu_item,menu); super.onCreateOptionsMenu(menu, inflater); }
这时候Toolbar并没有显示,需要在onActivityCreated加一个方法
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { setHasOptionsMenu(true); AppCompatActivity appCompatActivity= (AppCompatActivity) getActivity(); Toolbar toolbar= (Toolbar) appCompatActivity.findViewById(R.id.toolbar); appCompatActivity.setSupportActionBar(toolbar); super.onActivityCreated(savedInstanceState); }
这时候menu就显示在Toolbar上
1 0
- Fragment中使用Toolbar
- Fragment中使用toolbar
- Android Fragment中使用Toolbar
- Fragment中Toolbar的使用
- 在Fragment中如何使用Toolbar
- android---在Fragment中使用Toolbar
- 在Activity,Fragment,嵌套Fragment中使用ToolBar
- Android Fragment使用Toolbar
- Fragment中的toolbar使用
- 关于在Fragment中使用ToolBar导致菜单错乱----惊现巨坑
- Fragment中ToolBar问题解析
- Toolbar+DrawerLayout+Fragment结合使用
- Fragment中Toolbar的Menu创建过程
- NavigationView+ToolBar+TabLayout+ViewPager+Fragment综合使用
- Dialog中使用Toolbar
- dialog中使用toolbar
- Dialog中使用Toolbar
- Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
- echart怎么让南海诸岛不显示或隐藏部分省市名称
- 【2017.04.20】腾讯HR面面经
- 【Tensorflow】tf.nn.relu函数
- sql parameter 显示已存在该key解决方案
- kubernetes 源码分析之ingress(二)
- Fragment中使用Toolbar
- (43):返回零长度的数组或者集合,而不是null
- winform 项目调用wpf窗口 winform窗口式样发生改变问题
- A程序后台启动的B的Activity后,A程序后台又启动了A的Activity,如何在A的Activity中按返回不显示B的Activity
- 避免索引失效
- IE9网页添加到开始菜单
- WCF在项目实际生产中的引用方式以及一些引用建议及如何把svcutil.exe加载到VS中的tool中
- 玩转log4j
- [BZOJ3958][WF2011]Mummy Madness(二分+扫描线+线段树)