那么今天我主要是想来说说Google在Android5.0之后推出的NavigationView的具体使用方式。
NavigationView:
Google在5.0之后推出的NavitationView,所有的布局控件放在DrawerLayout中来使用,NavigationView的作用就像这样,实现侧拉效果。和DrawerLayout效果几分差异,QQ从左至右从边滑动的侧拉效果。上半部分图片背景,圆形头像,下面每一个都是导航菜单现在就来实现一下它(虽然是Iphone图,但是没关系了,就是这个道理)。
//第一步先导入依赖
implementation 'com.android.support:design:28.0.0
//效果
//开始写布局
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/main_radiofroup"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:background="@drawable/select_radio"
android:text="首页" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:background="@drawable/select_radio"
android:text="视频" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:background="@drawable/select_radio"
android:text="我的" />
</RadioGroup>
</LinearLayout>
如果页面有别的布局 NavigationView 一定要写在最下方 否则 则无法点击
<android.support.design.widget.NavigationView
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#75efae"
app:headerLayout="@layout/drawview"
app:menu="@menu/menu"
android:id="@+id/NavigationView"
>
</android.support.design.widget.NavigationView>
app:headerLayout="@layout/drawview"布局
<?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/menu_item1"
android:title="功能列表1"></item>
<item
android:id="@+id/menu_item2"
android:title="功能列表2"></item>
<item
android:id="@+id/menu_item3"
android:title="功能列表3"></item>
<item
android:id="@+id/menu_item4"
android:title="功能列表4"></item>
<item
android:id="@+id/item5"
android:title="功能列表5"></item>
</group>
</menu>
引用 app:headerLayout="@layout/drawview" 作用并不太
<ImageView
android:id="@+id/draw_imageView"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:background="@drawable/aa"/>
<TextView
android:id="@+id/draw_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:text="用户名" />
MainActivity代码
//获取资源id
NavigationView navigationView =findViewById(R.id.NavigationView);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.menu_item1:
Toast.makeText(MainActivity.this, "第一个", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_item2:
Toast.makeText(MainActivity.this, "第2个", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_item3:
Toast.makeText(MainActivity.this, "第3个", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_item4:
Toast.makeText(MainActivity.this, "第4个", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
});
重点 :记得NavigationView 放在下面 否则点击无响应
今天才学 不太会 请见谅 !!!
`