赞
踩
- <?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:orientation="vertical"
- android:id="@+id/drawer_layout"
- tools:context=".view.activity.BaseActivity">
-
- <LinearLayout
- android:id="@+id/ll_content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <com.example.test1512r3.view.customview.MyTitleView
- android:id="@+id/parent_title"
- android:layout_width="match_parent"
- android:layout_height="56dp"
- android:background="#1296db"/>
-
- <FrameLayout
- android:id="@+id/child_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
- </LinearLayout>
- <!--侧滑界面 宽可设置为match_parent效果为默认宽度,可自定义侧拉栏宽度-->
- <--android:layout_gravity=" "决定侧滑界面是左侧滑还是右侧滑-->
- <include layout="@layout/sliding_left"
- android:layout_width="450dp"
- android:layout_height="match_parent"
- android:layout_gravity="left" />
- </android.support.v4.widget.DrawerLayout>
代码:
- //内容布局
- LinearLayout ll_content = findViewById(R.id.ll_content);
- //侧拉栏布局
- LinearLayout ll_menu = findViewById(R.id.ll_menu);
- //DrawerLayout
- DrawerLayout drawer_layout = findViewById(R.id.drawer_layout);
-
- drawer_layout.addDrawerListener(new DrawerLayout.DrawerListener() {
- @Override
- public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
- //设置主布局随菜单滑动而滑动
- int drawerViewWidth = drawerView.getWidth();
- ll_content.setTranslationX(drawerViewWidth * slideOffset);
-
- //设置控件最先出现的位置
- double padingLeft = drawerViewWidth * (1 - 0.618) * (1 - slideOffset);
- ll_menu.setPadding((int) padingLeft, 0, 0, 0);
- }
- @Override
- public void onDrawerOpened(@NonNull View drawerView) { }
- @Override
- public void onDrawerClosed(@NonNull View drawerView) { }
- @Override
- public void onDrawerStateChanged(int newState) { }
- });
DrawerLayout 的一些方法:
- drawer_layout.closeDrawer(Gravity.LEFT);//关闭侧拉栏
- drawer_layout.openDrawer(Gravity.LEFT);//打开侧拉栏
- drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,Gravity.LEFT); //关闭手势滑动
- drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED,Gravity.LEFT); //打开手势滑动
- 下面是DrawerLayout的几个常用方法说明:
- setDrawerShadow : 设置主页面的渐变阴影图形。
- addDrawerListener : 添加抽屉面板的拉出监听器。该监听器实现了下面三个方法:
- --onDrawerSlide : 抽屉面板在滑动。
- --onDrawerOpened : 抽屉面板已打开。
- --onDrawerClosed : 抽屉面板已关闭。
- --onDrawerStateChanged : 抽屉面板的状态发生变化。
- removeDrawerListener : 移除抽屉面板的拉出监听器。
- closeDrawers : 关闭所有抽屉面板。
- openDrawer : 打开指定抽屉面板。
- closeDrawer : 关闭指定抽屉面板。
- isDrawerOpen : 判断指定抽屉面板是否打开。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。