本文主要是介绍侧边栏DrawerLayout,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.DrawerLayout 滑动抽屉组件
DrawerLayout布局由两部分组成,一部分是内容布局,一部分是侧滑栏布局drawerLayout本身就是一个布局文件,只是它带有滑动功能.
DrawerLayout为界面的根布局
内容布局代码要放在侧滑菜单栏布局的前面
android:layout_gravity = “start”时,从左向右滑出菜单
android:layout_gravity = “end”时,从右向左滑出菜单
<?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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/drawer"tools:context="com.xx.andbasetest.DrawerActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="25dip"android:text="这是主布局"/></LinearLayout><!--左侧滑--><TextViewandroid:id="@+id/left_drawer"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:layout_gravity="start"android:background="@android:color/white"android:textSize="25dip"android:text="左侧滑"/><!--右侧滑--><TextViewandroid:id="@+id/right_drawer"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:layout_gravity="end"android:background="@android:color/white"android:textSize="25dip"android:text="右侧滑"/>
</android.support.v4.widget.DrawerLayout>
public class DrawerActivity extends AppCompatActivity {private DrawerLayout drawerLayout;private TextView tv_left;private TextView tv_right;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_drawer);drawerLayout = (DrawerLayout)findViewById(R.id.drawer);tv_left = (TextView)findViewById(R.id.left_drawer);tv_right = (TextView)findViewById(R.id.right_drawer);tv_left.setText("你滑到了左边");//DrawerLayout监听器drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {//侧边栏正在改变时@Overridepublic void onDrawerSlide(View drawerView, float slideOffset) {Log.i("tag","onDrawerSlide");}//打开侧边栏@Overridepublic void onDrawerOpened(View drawerView) {Log.i("tag","onDrawerOpened ");}//关闭侧边栏@Overridepublic void onDrawerClosed(View drawerView) {Log.i("tag","onDrawerClosed");}//改变侧边栏@Overridepublic void onDrawerStateChanged(int newState) {Log.i("tag","onDrawerStateChanged");}});}
}
2.导航侧边栏Navigation Drawer
一种侧滑导航栏控件,包含侧滑DrawerLayour,和导航菜单栏NavigationView
在新建Activity时选择Navigation Drawer Activity会自动生成
自动生成的布局文件
<?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"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"tools:openDrawer="start"><includelayout="@layout/app_bar_navigation_drawer"android:layout_width="match_parent"android:layout_height="match_parent" /><android.support.design.widget.NavigationViewandroid:id="@+id/nav_view"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="start"android:fitsSystemWindows="true"app:headerLayout="@layout/nav_header_navigation_drawer2"app:menu="@menu/activity_navig_drawer_drawer" /></android.support.v4.widget.DrawerLayout>
监听事件 @Override public boolean onNavigationItemSelected(MenuItem item) {// Handle navigation view item clicks here. int id = item.getItemId(); if (id == R.id.nav_camera) {Toast.makeText(this, "你选择了相机", Toast.LENGTH_LONG).show(); } else if (id == R.id.nav_gallery) {Toast.makeText(this, "你选择了相册", Toast.LENGTH_LONG).show(); } else if (id == R.id.nav_slideshow) {Toast.makeText(this, "你选择了个性装扮", Toast.LENGTH_LONG).show(); } else if (id == R.id.nav_manage) {} else if (id == R.id.nav_share) {} else if (id == R.id.nav_send) {}
这篇关于侧边栏DrawerLayout的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!