suppender of AndroidStudy
12/16/2016 - 1:52 PM

NavigationView侧滑菜单及监听

NavigationView侧滑菜单及监听

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/activity_passwords"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.xunfang.mymd.ui.PasswordsActivity">


    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="256dp">

            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:contentScrim="@color/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

                <ImageView
                    android:id="@+id/main.backdrop"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="centerCrop"
                    android:src="@mipmap/bad2445"
                    app:layout_collapseParallaxMultiplier="0.7"
                    app:layout_collapseMode="parallax" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar_ps"
                    android:layout_width="match_parent"
                    android:layout_height="?android:attr/actionBarSize"
                    android:minHeight="?android:attr/actionBarSize"
                    app:expandedTitleMarginEnd="64dp"
                    app:expandedTitleMarginStart="48dp"
                    app:layout_collapseMode="pin">


                </android.support.v7.widget.Toolbar>

            </android.support.design.widget.CollapsingToolbarLayout>


        </android.support.design.widget.AppBarLayout>

        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            android:fitsSystemWindows="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">


            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/primary_light"
                android:text="*******
                二、Print-like Design 打印式风格

    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属
    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属
    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属
    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属
    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属
    Material利用了经典的打印设计,使内容前部和中心的布局变得整洁和简约。刻意大胆的颜色选择,刻意的空白,美观的印刷风格和强烈的格子线条为你创建一种有层次有意义有焦点的效果。

    2.1 Typography 活字印刷

    Android 5.0更新了Roboto样式,不论多大的text,展示起来都会美观和简洁。添加了一种新的中等高度属性(android:fontFamily=”sans-serif-medium”) 和新的AppAppearance样式为了平衡内容密度和阅读的舒适感,实现了推荐的打印式缩放的。比如你可以简单的通过 android:textAppearance=”@android:style/TextAppearance.Material.Title” 设置  “Title”风格。在旧的版本中可以使用AppCompat support library的样式: “@style/TextAppearance.AppCompat.Title”.

    2.2 Color

    调色板为你的应用带来了品牌营销和个性化,通过以下属性可以方便的控制UI的着色:
                *************************" />


        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>


    <!--在代码中再填充头部布局-->

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

    </android.support.design.widget.NavigationView>

    <RelativeLayout
        android:id="@+id/right"
        android:layout_width="260dp"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:background="#BCEE68">

        <ImageView
            android:id="@+id/p_pic"
            android:layout_width="72dp"
            android:layout_height="72dp"
            android:layout_centerInParent="true"
            android:src="@mipmap/p_pic" />

        <TextView
            android:id="@+id/right_textview"
            android:layout_width="wrap_content"
            android:layout_height="48dp"
            android:layout_below="@id/p_pic"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="12dp"
            android:text="个人中心"
            android:textColor="@android:color/black"
            android:textSize="14sp" />

    </RelativeLayout>

</android.support.v4.widget.DrawerLayout>
public class MainActivity extends Activity 
               implements NavigationView.OnNavigationItemSelectedListener {

    private DrawerLayout mDrawerLayout;
    private NavigationView mNavigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mNavigationView = (NavigationView) findViewById(R.id.navigation_view);
      
       //在代码中再填充头部布局;
       //如果在布局中添加过了,就会出现两个头部导航
        headerview=navigationView.inflateHeaderView(R.layout.header_layout);
        ImageView iv= (ImageView) headerview.findViewById(R.id.navigation_header_iv);
        TextView tv= (TextView) headerview.findViewById(R.id.navigation_header_tv);
        tv.setText((String)SPUtil.get(this,"username","无用户名"));
        //显示菜单图标本来的颜色
        navigationView.setItemIconTintList(null);

        mNavigationView.setNavigationItemSelectedListener(this);


    }

    @Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {


        // int id = menuItem.getItemId();
        String title = (String) menuItem.getTitle();
        Toast.makeText(this, "您点击了 " + title, Toast.LENGTH_SHORT).show();

        return super.onContextItemSelected(menuItem);

    }


}