DrawerLayout+NavigationView实现侧滑菜单
来源:互联网 发布:政府数据开放平台 编辑:程序博客网 时间:2024/06/08 01:20
控件说明
DrawerLayout+NavigationView 都是Material Design风格的最新控件,所以我们需要在 Module:app
build.gradle
添加 compile 'com.android.support:design:26.0.0-alpha1'
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" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name"/> </LinearLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="320dp" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/layout_header" app:menu="@menu/menu_left"> </android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>
DrawerLayout包括内容布局和侧滑菜单布局,侧滑菜单布局我们用NavigationView
来实现,其中NavigationView
中常用的两个标签 app:headerLayout="@layout/layout_header"
用来实现头部布局,app:menu="@menu/menu_left"
用来实现菜单列表;
主页面代码逻辑
接下来我们在 Activity 中实现如下代码,
public class MainActivity extends AppCompatActivity { @BindView(R.id.drawer_layout) DrawerLayout mDrawerLayout; @BindView(R.id.navigation_view) NavigationView mNavigationView; private View headerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); //侧滑控件的监听 mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } }); headerView = mNavigationView.getHeaderView(0); //侧滑菜单头部布局的监听 headerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "This is HeaderView", Toast.LENGTH_SHORT).show(); } });//侧滑菜单列表的点击事件监听 mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.menu_app_update: Toast.makeText(MainActivity.this, "应用更新", Toast.LENGTH_SHORT).show(); break; case R.id.menu_message: Toast.makeText(MainActivity.this, "消息中心", Toast.LENGTH_SHORT).show(); break; case R.id.menu_setting: Toast.makeText(MainActivity.this, "设置", Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
阅读全文
0 0
- NavigationView+Drawerlayout+Toolbar实现侧滑菜单
- DrawerLayout + NavigationView实现侧滑菜单
- DrawerLayout+NavigationView实现侧滑菜单
- 侧滑菜单 Drawerlayout navigationView
- NavigationView+DrawerLayout 侧滑菜单
- Android DrawerLayout+NavigationView布局实现左右两边侧滑菜单
- Android实现侧滑抽屉菜单(DrawerLayout+NavigationView+toolbar)
- 侧滑菜单的简单实现(DrawerLayout+Toolbar+NavigationView)
- Kotlin实现侧滑抽屉菜单(DrawerLayout+NavigationView+Toolbar)
- 侧滑菜单 drawerlayout 与 NavigationView
- NavigationView和DrawerLayout实现侧滑菜单栏
- Android-NavigationView+DrawerLayout实现抽屉菜单
- 实现滑动菜单效果DrawerLayout+NavigationView
- Material Design之侧滑菜单DrawerLayout+NavigationView的使用
- Android 抽屉侧滑菜单 DrawerLayout+NavigationView+ToolBar
- Material Design之NavigationView和DrawerLayout实现侧滑菜单栏
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏(抽屉)
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
- 信号量down, up, sem_p, sem_v, sem_wait, sem_post 的区别
- Tomcat集群(一)
- Verilog HDL 有限状态机的设计
- 10月28日考试解题报告
- Hibernate 实体类注解
- DrawerLayout+NavigationView实现侧滑菜单
- Spring-MVC 4 ajax提交json数据 报错415
- c++中的多重继承和虚函数
- pandas groupby 详解
- 自定义轮播
- ZooKeeper 使用中的问题:Len error
- 数据结构学习笔记(18)---B树
- he page has expired due to inactivity. Please refresh and try again
- Tomcat集群(二)