ToolBar和NavigationView
NavigationView 列表主键
用法:
1、到依赖:implementation ‘com.android.support:design:28.0.0’
2、android.support.design.widget.NavigationView
3、添加头布局 app:headerLayout="@layout/布局名"
4、新建menu文件
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/na1" android:icon="@android:drawable/ic_menu_manage" android:title="我的超级会员"></item>
</group>
</menu>
5、添加menu布局:app:menu="@menu/navigation"
布局
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFF8800"
app:logo="@mipmap/ic_launcher"
app:title="标题"
app:titleTextColor="@android:color/holo_orange_light"
app:subtitle="副标题"
app:subtitleTextColor="@android:color/holo_red_dark"
app:navigationIcon="@android:drawable/sym_action_email"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp">
<EditText
android:id="@+id/ed1"
android:hint="请输入要查询的内容"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@android:drawable/ic_menu_search"
/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
<android.support.v4.widget.DrawerLayout
android:id="@+id/d"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/na"
android:layout_gravity="left"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:headerLayout="@layout/topname"
app:menu="@menu/navigation"
>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
headerLayout布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/iv1"
android:background="@drawable/tu4"
android:layout_width="match_parent"
android:layout_height="200dp" />
</LinearLayout>
menu
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/na1" android:icon="@android:drawable/ic_menu_manage" android:title="我的超级会员"></item>
<item android:id="@+id/na2" android:icon="@android:drawable/ic_menu_today" android:title="QQ钱包"></item>
<item android:id="@+id/na3" android:icon="@android:drawable/ic_menu_add" android:title="个性装扮"></item>
<item android:id="@+id/na4" android:icon="@android:drawable/ic_menu_agenda" android:title="我的收藏"></item>
</group>
</menu>
Activity
public class MainActivity extends AppCompatActivity {
Toolbar toolbar;
DrawerLayout drawerLayoutl;
NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSupportActionBar(toolbar);//替换actiongbar
inittoolbar();
initdrawerLayoutl();
navigationView = findViewById(R.id.na);
ImageView imageView = navigationView.getHeaderView(0).findViewById(R.id.iv1);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "图片", Toast.LENGTH_SHORT).show();
}
});
}
//toolbar
public void inittoolbar(){
toolbar = findViewById(R.id.toolbar);
//导航按钮添加点击事件
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "导航", Toast.LENGTH_SHORT).show();
}
});
}
//drawerLayout
public void initdrawerLayoutl(){
drawerLayoutl = findViewById(R.id.d);
//绑定toolbar和drawerLayoutl
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,drawerLayoutl,toolbar,R.string.openlayout,R.string.closelayout);
toggle.syncState();
drawerLayoutl.addDrawerListener(toggle);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.layoutmenu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId){
case R.id.item1:
Toast.makeText(this, "菜单", Toast.LENGTH_SHORT).show();
break;
case R.id.submenu:
Toast.makeText(this, "子菜单", Toast.LENGTH_SHORT).show();
if (drawerLayoutl.isDrawerOpen(Gravity.LEFT)){
drawerLayoutl.closeDrawer(Gravity.LEFT);
}else{
drawerLayoutl.openDrawer(Gravity.LEFT);
}
break;
}
return super.onOptionsItemSelected(item);
}
}
效果