因此,我有一个带有导航视图的活动.通过单击其项目,我可以更改活动片段.所有片段都具有相同的工具栏.但是其中有一个工具栏和TabLayout.我想知道什么是更好的在这样的活动中声明工具栏
<relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <include layout="@layout/toolbar" /> <FrameLayout androID:ID="@+ID/container" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_below="@+ID/toolbar" /></relativeLayout>
或在每个片段中声明它.
第一种方法的缺点是默认的工具栏阴影.当我在片段中添加标签时,阴影看起来像
当我尝试2解决方案.我所有的工具栏都带有后退图标,而不是抽屉动画徽标.
谢谢.
解决方法:
我有同样的问题.这是我解决的方法:
>按照您的建议将工具栏移到片段上(这样就不会有阴影将两者分开).这也为在布局中实现(不同)工具栏提供了一种更加灵活的方法.
>用自定义图标替换工具栏的导航图标,如下所示:
toolbar.setNavigationIcon(R.drawable.ic_action_menu);
(我使用Android Asset Studio轻松创建具有首选颜色的图标)
>现在,使用新的菜单(主页)图标打开NavigationVIEw.您可以通过MainActivity(带有NavigationVIEw的控件)进行此 *** 作.在该活动中创建一个公共方法以打开抽屉:
public voID openDrawer(){ mDrawerLayout.openDrawer(Gravity.left);}
>现在像这样在片段的OnoptionsItemSelected中调用此方法:
@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) { // handle item selection switch (item.getItemID()) { case androID.R.ID.home: //Menu icon ((MainActivity)getActivity()).openDrawer(); return true; default: return super.onoptionsItemSelected(item); }}
而已.当然,缺点是必须在每个Fragment中实现工具栏.但是,这是(据我所知)唯一使您能够在片段中使用工具栏(TabLayout)并且仍然能够控制NavigationVIEw的方法.
总结以上是内存溢出为你收集整理的android-带有片段的导航视图.工具列全部内容,希望文章能够帮你解决android-带有片段的导航视图.工具列所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)