Android UI之DrawerLayout
来源:互联网 发布:vb程序设计视频教程 编辑:程序博客网 时间:2024/05/17 18:43
1 抽屉式控件
DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说DrawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。DrawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(DrawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。
2 使用流程
2.1 main.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/drawerHolder" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/view_titlebar" /> <android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="40dp" android:background="@color/black"/> <android.support.v4.view.ViewPager android:id="@+id/pageContent" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/tabLayout" /> </RelativeLayout> //左边菜单起始位置设置为android:layout_gravity="start" <FrameLayout android:id="@+id/leftDrawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/grey"> </FrameLayout></android.support.v4.widget.DrawerLayout>
2.2 MainActivity.java
/** * 主Activity */public class MainActivity extends BaseActivity { private DrawerLayout mDrawerHolder;//抽屉菜单根布局 private View mLeftDrawer;//左侧菜单 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); init(); initEvent(); } @Override protected void initView() { setContentView(R.layout.fragment_main); initTitleBar(); mDrawerHolder = (DrawerLayout) findViewById(R.id.drawerHolder); mLeftDrawer = findViewById(R.id.leftDrawer); } @Override protected void initTitleBar() { super.initTitleBar(); } @Override protected void init() { doubleClickExit = new DoubleClickExitUtil(this); /** * 使用DrawerFragment实现抽屉页面 */ DrawerFragment drawerFragment = new DrawerFragment();//抽屉页面 getSupportFragmentManager().beginTransaction() .add(R.id.leftDrawer, drawerFragment).commit(); } @Override protected void initEvent() { super.initEvent(); mLeftDrawer.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.backView: if (mDrawerHolder.isDrawerOpen(mLeftDrawer)) { mDrawerHolder.closeDrawer(mLeftDrawer); } else { mDrawerHolder.openDrawer(mLeftDrawer); } break; } } @Override public void onBackPressed() { if (mDrawerHolder.isDrawerOpen(mLeftDrawer)) { mDrawerHolder.closeDrawer(mLeftDrawer); } else { doubleClickExit.onKeyDown(KeyEvent.KEYCODE_BACK); } }}
2.3 DrawerFragment.java
/** * 主页抽屉页面 */public class DrawerFragment extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (rootView == null) { rootView = inflater.inflate(R.layout.fragment_left_drawer, null); initView(); init(); initEvent(); } else { ViewGroup parent = (ViewGroup) rootView.getParent(); if (parent != null) { parent.removeView(rootView); } } return rootView; } @Override protected void initView() { } @Override protected void init() { } @Override protected void initEvent() { } @Override public void onClick(View v) { switch (v.getId()) { case R.id.....: break; default: break; } }}
2.4 fragment_left_drawer.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"></RelativeLayout>
0 0
- Android UI之DrawerLayout
- android--UI---侧滑drawerLayout
- Android UI 备忘:DrawerLayout
- Android开发之DrawerLayout
- android组件之DrawerLayout
- Android学习之DrawerLayout
- Material Design-UI之Toolbar+DrawerLayout
- 【UI设计】DrawerLayout使用
- Android左侧菜单栏之DrawerLayout+Fragment
- 一步步走进Android MaterialDesign 之 DrawerLayout
- Android 学习之drawerlayout写侧滑菜单
- Android开发之ActionBar与DrawerLayout
- Android控件之Toolbar + DrawerLayout的使用
- 【Android - V】之DrawerLayout的使用
- Android之侧滑菜单DrawerLayout
- Android开发之DrawerLayout实现抽屉效果
- Android之 DrawerLayout不覆盖主内容
- Android开发之DrawerLayout的简单使用
- Android-图片选择,压缩,上传,加载的实例 (图片选择,压缩实现 )
- 使用fragment argument
- uva 534 - Frogger(最小生成树)
- Android UI之ScrollView
- POJ 1002 487-3279
- Android UI之DrawerLayout
- uva 538 - Balancing Bank Accounts(贪心)
- The type javax.http.HttpServletRequest cannot be resolved.It is indirectly
- hdu 2544 最短路(floyd)
- 《机器学习实战》学习笔记:决策树的实现
- 一些容易忽略的知识
- Java设计模式--Java设计模式介绍
- proc中各种与进程相关的信息
- MFC利用正则表达式进行密码匹配