Android学习之基于DrawerLayout的侧边栏实现
来源:互联网 发布:mac qq怎么上传群文件 编辑:程序博客网 时间:2024/05/30 19:33
本例,是基于AndroidStudio开发,用到v7包下DrawerLayout,Toolbar,和android.support.design下的NavigationView,需要在gradle中配置
compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:design:25.3.1'
用到Toolbar,是想在侧边栏打开的时候覆盖Actionbar,如果不想覆盖Actionbar,可以使用普通布局代替Toolbar。
效果图:
下面是具体代码:
layout/activity_drawer_layout_demo.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawerLayout" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/mToolBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:fitsSystemWindows="true" android:minHeight="?attr/actionBarSize" android:popupTheme="@style/Widget.AppCompat.ActionBar" app:theme="@style/Widget.AppCompat.Light.ActionBar"> </android.support.v7.widget.Toolbar> <!--内容区--> </LinearLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="250dp" android:layout_height="match_parent" android:layout_gravity="left" android:fitsSystemWindows="true" app:headerLayout="@layout/activity_drawer_layout_demo_header" app:menu="@menu/main_navigation_menu"> </android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>
layout/activity_drawer_layout_demo_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="150dp" android:background="@color/whiteGray" android:gravity="center" android:orientation="vertical"> <ImageView android:id="@+id/headerImageView" android:layout_width="60dp" android:layout_height="60dp" android:src="@mipmap/ic_launcher_round" /> <TextView android:id="@+id/userNameText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="linzhiyong" /></LinearLayout>
menu/main_navigation_menu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/favorite" android:icon="@mipmap/ic_launcher" android:title="收藏" /> <item android:id="@+id/wallet" android:icon="@mipmap/ic_launcher" android:title="钱包" /> <item android:id="@+id/photo" android:icon="@mipmap/ic_launcher" android:title="相册" /> <item android:id="@+id/file" android:icon="@mipmap/ic_launcher" android:title="文件" /></menu>
activity
mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, mToolBar, 0, 0); // 添加此句,toolbar左上角显示开启侧边栏图标 mDrawerToggle.syncState(); drawerLayout.addDrawerListener(mDrawerToggle); navigationView.setItemIconTintList(null); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { showToast(item.getItemId() + "--" + item.getTitle().toString()); return true; } });// // 禁用手势// drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);// // 打开// drawerLayout.openDrawer(Gravity.LEFT);// // 关闭// drawerLayout.closeDrawer(Gravity.LEFT);
阅读全文
1 0
- Android学习之基于DrawerLayout的侧边栏实现
- android DrawerLayout 侧边栏实现
- android DrawerLayout侧边栏实现
- Android之DrawerLayout实现ViewPager+左右侧边栏
- Android侧边栏DrawerLayout实现问题笔记
- DrawerLayout 实现侧边栏
- 侧边栏的简单实现(使用drawerLayout)
- 左右两边的侧边栏实现(使用drawerlayout)
- Android学习笔记(四)之碎片化Fragment实现仿人人客户端的侧边栏
- 基于CCoolBar侧边栏的实现
- 侧边栏DrawerLayout
- android学习笔记:联系人侧边栏的实现
- Android典型界面设计(5)——使用SlidingMenu和DrawerLayout分别实现左右侧边栏
- html5学习之侧边栏实现
- Android学习之DrawerLayout
- Android关于侧边栏的简单使用(drawerLayout,navigationview,动态添加menu)
- 使用SlidingMenu和DrawerLayout分别实现左右侧边栏
- android slidingMenu 侧边栏菜单 的实现
- NGUI 中 Label 字体大小变化的问题
- Cookie学习
- 【Linux】进度条
- 计算机网络面试常考知识点
- 高仿微信app实战(二)- 自定义View实现底部导航栏
- Android学习之基于DrawerLayout的侧边栏实现
- apache静态服务器配置
- 搭建IntelliJ IDEA+gitbucket+git多人开发环境
- Spring MVC Hello案例
- 最流行的Java IDE有哪些?
- 关于MFC中通过向导添加变量的问题
- Windows server 2008下配置tomcat到系统服务方法及一般问题解决办法
- 如何简单使用ngrok,将网站内网映射到外网
- 使用Spring Boot Gradle 打war包的一点心得体会