NavigationView+Toolbar

在布局文件中定义:

<android.support.design.widget.NavigationView
    android:id="@+id/nv"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:menu="@menu/menu_main"></android.support.design.widget.NavigationView>

一般是同DrawerLayout一起使用。
NavigationView的不同之处就在于可以使用app:headerLayoutapp:menu来对侧滑栏添加头布局和Item。
app:itemIconTint
app:itemBackground
app:itemTextColor
上面三个属性可以设置Item的颜色样式。
Item直接用menu布局就可以:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/action_fresh"
            android:icon="@mipmap/ic_menu_fresh"
            android:title="新鲜事" />
        <item
            android:id="@+id/action_boring"
            android:icon="@mipmap/ic_menu_boring"
            android:title="无聊图" />
        <item
            android:id="@+id/action_para"
            android:icon="@mipmap/ic_menu_para"
            android:title="段子" />
        <item
            android:id="@+id/action_movie"
            android:icon="@mipmap/ic_menu_fresh"
            android:title="小电影" />
    </group>
    <item android:title="其他">
        <menu>
            <item
                android:icon="@mipmap/ic_menu_setting"
                android:title="设置" />
        </menu>
    </item>
</menu>

然后是Toolbar:

        <!--选中状态icon的颜色和字体颜色-->
        <item name="colorPrimary">@color/main_blue_light</item>
        <item name="colorPrimaryDark">@color/main_blue_dark</item>
        <item name="colorAccent">@color/main_blue_light</item>
        <!--正常状态下字体颜色和icon颜色-->
        <item name="android:textColorPrimary">@color/main_white</item>

可以引用这个样式来修改Toolbar的显示效果。
当然还要记得在xml布局中引入:

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

这样只是设置出一个布局样式,还要在代码中使用才行:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final android.support.v7.widget.Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        /*final android.support.v7.app.ActionBar actionbar = getSupportActionBar();
        if (actionbar != null)
        {
            actionbar.setDisplayHomeAsUpEnabled(true);
      actionbar.setHomeAsUpIndicator(R.mipmap.ic_menu_black_24dp);
        }*/
        mDrawerLayout = (DrawerLayout) findViewById(R.id.dl);
        navigationView = (NavigationView) findViewById(R.id.nv);
        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name, R.string.app_name);
        mDrawerLayout.setDrawerListener(mDrawerToggle);
        mDrawerToggle.syncState();
    }

还可以为NavigationView添加点击事件:

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
      @Override
       public boolean onNavigationItemSelected(MenuItem menuItem) {
                if (menuItem.getItemId() == R.id.action_movie){
                    Snackbar.make(mDrawerLayout,"点击正确!",Snackbar.LENGTH_SHORT).show();
                }
                menuItem.setChecked(true);
                mDrawerLayout.closeDrawers();
                return true;
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值