《简单学》NavigationView

6
回复
962
查看
[复制链接]

1

主题

6

帖子

9

安币

初级码农

Rank: 1

发表于 2017-5-25 16:09:34 | 显示全部楼层 |阅读模式


引用SupportDesign库:    compile 'com.android.support:design:23.1.1'

[size=13.0667px]NavigationView继承自FrameLayout
[size=13.0667px]第一步:定义activity_main.xml

<?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"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="false">

    <!-- 此处为主界面定义-->
    <FrameLayout
        android:id="@+id/fl_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <!-- 此处为NavigationView-->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/navigation_header"
        app:menu="@menu/my_navigation_items"/>
</android.support.v4.widget.DrawerLayout>
此处要注意:android:fitsSystemWindows 用于设置状态栏透明度与否android:layout_gravity    设置抽屉从左边还是右边打开app:headerLayout          设置抽屉的头部app:menu                   设置抽屉的内容
第二步:实现navigation_header.xml和my_navigation_items.xmlnavigation_header.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="250dp"
              android:background="?attr/colorPrimary"
              android:gravity="center"
              android:orientation="vertical"
              android:padding="10dp"
              android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginTop="16dp"
        android:background="@drawable/menu_1"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:gravity="center"
        android:text="hello,world !"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        android:textSize="20sp"/>

</LinearLayout>

my_navigation_items.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_2"
            android:icon="@drawable/menu_1"
            android:title="1m"/>
        <item
            android:id="@+id/nav_3"
            android:icon="@drawable/menu_2"
            android:title="2m"/>
        <item
            android:id="@+id/nav_4"
            android:icon="@drawable/menu_3"
            android:title="3m"/>
        <item
            android:id="@+id/nav_5"
            android:icon="@drawable/menu_4"
            android:title="4m"/>
    </group>

    <item android:title="title">
        <menu>
            <item
                android:icon="@drawable/menu_6"
                android:title="6m"/>
            <item
                android:icon="@drawable/menu_1"
                android:title="1m"/>
        </menu>
    </item>

</menu>

第三步:MainActivity.class的实现public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private NavigationView navigationView;

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

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        navigationView = (NavigationView) findViewById(R.id.navigation);
        //抽屉item点击事件的实现
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                Toast.makeText(MainActivity.this,item.getTitle() + " pressed",Toast.LENGTH_SHORT).show();
                item.setChecked(true);
                mDrawerLayout.closeDrawers();
                return true;
            }
        });
    }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

27

主题

9736

帖子

1856

安币

Android大神

Rank: 6Rank: 6

发表于 2017-5-25 16:09:35 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

465

主题

9969

帖子

802

安币

代码手工艺人

Rank: 4

发表于 2017-5-25 16:09:36 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

4

主题

9730

帖子

791

安币

代码手工艺人

Rank: 4

发表于 2017-5-25 16:09:38 | 显示全部楼层
支持楼主,支持安卓巴士!

3

主题

7237

帖子

1736

安币

Android大神

Rank: 6Rank: 6

发表于 2017-5-25 16:09:46 | 显示全部楼层
支持,感谢,祝巴士越来越好~

0

主题

9523

帖子

1140

安币

Android大神

Rank: 6Rank: 6

发表于 2017-5-25 16:10:32 | 显示全部楼层
帮帮顶顶!!

7

主题

9630

帖子

1958

安币

Android大神

Rank: 6Rank: 6

发表于 2017-5-25 16:11:10 | 显示全部楼层
楼主威武,以后多发干货,多办活动~!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )