ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android-带有片段的导航视图.工具列

2019-10-28 04:28:15  阅读:249  来源: 互联网

标签:navigationview tabs android


因此,我有一个带有导航视图的活动.通过单击其项目,我可以更改活动片段.所有片段都具有相同的工具栏.但是其中有一个工具栏和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>

或在每个片段中声明它.

第一种方法的缺点是默认的工具栏阴影.当我在片段中添加标签时,阴影看起来像

enter image description here

当我尝试2解决方案.我所有的工具栏都带有后退图标,而不是抽屉动画徽标.

谢谢.

解决方法:

我有同样的问题.这是我解决的方法:

>按照您的建议将工具栏移到片段上(这样就不会有阴影将两者分开).这也为在布局中实现(不同)工具栏提供了一种更加灵活的方法.
>用自定义图标替换工具栏的导航图标,如下所示:

toolbar.setNavigationIcon(R.drawable.ic_action_menu);

(我使用Android Asset Studio轻松创建具有首选颜色的图标)

>现在,使用新的菜单(主页)图标打开NavigationView.您可以通过MainActivity(带有NavigationView的控件)进行此操作.在该活动中创建一个公共方法以打开抽屉:

public void openDrawer(){
    mDrawerLayout.openDrawer(Gravity.LEFT);
}

>现在像这样在片段的OnOptionsItemSelected中调用此方法:

@Override
public 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的方法.

标签:navigationview,tabs,android
来源: https://codeday.me/bug/20191028/1949564.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有