DrawerLayout+Toolbar+NavigationView注意事项

1.setSupportActionBar(mTooleBar);调用之前应在androidmainfest文件中,这个activity声明时,需要加上Android:theme=”@style/AppTheme.NoActionBar如:

<activity android:name=".MainActivity"                      android:theme="@style/AppTheme.NoActionBar">
</activity>  

2.ToolBar左侧图标替换
首先,设置ActionBarDrawerToggle:toggle.setDrawerIndicatorEnabled(false);
然后,设置图片:toolbar.setNavigationIcon(R.drawable.mypic1);
最后,设置toolbar的监听,打开侧边栏:

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
        drawerLayout.openDrawer(GravityCompat.START);
     }
});

3,ToolBar右侧menu图标设置:

tooleBar.setOverflowIcon(getResources().getDrawable(R.drawable.pic2));

4,打开toolbar的menu时不遮挡toolbar,在style文件中设置overlapAnchor为false:

<style name="AppTheme.NoActionBar">      <itemname="actionOverflowMenuStyle">@style/ToolbarPopupTheme</item>
</style>
<style name="ToolbarPopupTheme">
        <!-- 是否覆盖锚点,默认为true,即盖住Toolbar -->
        <item name="overlapAnchor">false</item>
</style>

注:ToolbarPopupTheme中可设置menu的属性,如背景颜色等;
5,menu中同时显示图片和文字需在onCreateOptionsMenu或者onMenuOpened中添加如下代码:
if (menu != null) {
if(menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")) {
try {
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
method.setAccessible(true);
method.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

6,setOnMenuItemClickListener不只是不是个人原因,只有写在onCreateOptionsMenu或者onMenuOpened中才有效
7,关于NavigationView的使用:
<android.support.design.widget.NavigationView
android:id="@+id/drawer_navig_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_gravity="left"
app:headerLayout="@layout/header_nv_main"
app:menu="@menu/content_menu_navigation_main"/>

其中:

android:fitsSystemWindows的值用于设置状态栏透明化与否。
android:layout_gravity可设置抽屉,也就是NavigationView从左边或是右边打开。如果不设置改属性,抽屉则为打开状态,挡住主界面,可对其子控件设置该属性,不同控件设置不同值,可以从不同方向打开对应控件
app:menu用于设置菜单内容的xml布局。
app:headerLayout用于设置NavigationView的HeaderView的xml布局文件。
以上内容大多为整理网上大神的文章,写在这里留作以后参考用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值