java NavigationView侧滑菜单及监听

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 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);

    }


}

以上是关于java NavigationView侧滑菜单及监听的主要内容,如果未能解决你的问题,请参考以下文章

java NavigationView侧滑菜单及监听

Android使用ToolBar+DrawerLayout+NavigationView实现侧滑抽屉效果

Android - MD之NavigationView的使用

抽屉实现-->

java 通过使用app:actionLayout或MenuItemCompat.setActionView()能够为抽屉的菜单项添加自定义视图,这使得NavigationView得到了更好的扩展性.

SlidingMenu 侧滑菜单的用法