1.引入依赖
implementation \'com.android.support:design:27.1.1\'
2.准备menu(nav_menu.xml)和headerLayout(nav_header.xml)
<menu xmlns:android=\"http://schemas.android.com/apk/res/android\">
<group android:checkableBehavior=\"single\">
<item android:id=\"@+id/nav_call\"
android:icon=\"@mipmap/ic_launcher\"
android:title=\"Call\"/>
<item android:id=\"@+id/nav_friedns\"
android:icon=\"@mipmap/ic_launcher\"
android:title=\"Friends\"/>
<item android:id=\"@+id/nav_location\"
android:icon=\"@mipmap/ic_launcher\"
android:title=\"Location\"/>
<item android:id=\"@+id/nav_mail\"
android:icon=\"@mipmap/ic_launcher\"
android:title=\"Mail\"/>
<item android:id=\"@+id/nav_task\"
android:icon=\"@mipmap/ic_launcher\"
android:title=\"Tasks\"/>
</group>
</menu>
<RelativeLayout
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:layout_width=\"match_parent\"
android:layout_height=\"180dp\"
android:padding=\"10dp\"
android:background=\"?attr/colorPrimary\">
<ImageView
android:id=\"@+id/icon_image\"
android:layout_width=\"70dp\"
android:layout_height=\"70dp\"
android:src=\"@mipmap/ic_launcher\"
android:layout_centerInParent=\"true\"/>
<TextView
android:id=\"@+id/username\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_alignParentBottom=\"true\"
android:text=\"tonygreed\"
android:textColor=\"#fff\"
android:textSize=\"14sp\"/>
<TextView
android:id=\"@+id/mail\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_above=\"@id/username\"
android:text=\"Tony Green\"
android:textColor=\"#fff\"
android:textSize=\"14sp\"/>
</RelativeLayout>
3.主布局
<android.support.v4.widget.DrawerLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
xmlns:app=\"http://schemas.android.com/apk/res-auto\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:id=\"@+id/drawer_layout\"
android:background=\"#fff\">
<FrameLayout
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\">
<android.support.v7.widget.Toolbar
android:id=\"@+id/toolbar\"
android:layout_width=\"match_parent\"
android:layout_height=\"?attr/actionBarSize\"
android:background=\"?attr/colorPrimary\"
android:theme=\"@style/ThemeOverlay.AppCompat.Dark.ActionBar\"
app:popupTheme=\"@style/ThemeOverlay.AppCompat.Light\"/>
</FrameLayout>
<android.support.design.widget.NavigationView
android:id=\"@+id/nav_view\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:layout_gravity=\"start\"
app:menu=\"@menu/nav_menu\"
app:headerLayout=\"@layout/nav_header\"/>
</android.support.v4.widget.DrawerLayout>
4.代码
public class NavigationViewActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private NavigationView navigationView;
private Toolbar toolbar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.navigationview_activity);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mDrawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.nav_view);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
//显示导航按钮
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.mipmap.ic_launcher);
}
navigationView.setCheckedItem(R.id.nav_call);
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
mDrawerLayout.closeDrawers();
return true;
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//打开
mDrawerLayout.openDrawer(Gravity.START);
break;
}
return true;
}
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


