【support包学习】DrawerLayout的使用
来源:互联网 发布:nesstool是什么软件 编辑:程序博客网 时间:2024/06/04 19:04
为了让开发者能更快更好的进行安卓app开发(或者是为了填坑),谷歌推出了一系列的support package给广大开发者使用。从最早的v4到现在的v21,里面包括了很多好用的UI控件例如ViewPager以及工具类。本系列仅用于记录support包各个常用模块的学习过程。
曾几何时,对于我这种UI生手来说为app实现侧边栏有着相当的工作量,现如今谷人希在v4包里面为我们带来了利器DrawerLayout。侧边栏就是弹指一挥间的事情了,下面直接上demo。
首先,将主Activity的layout改为DrawerLayout,可以看出实际上DrawerLayout由两部分组成,一部分是作为主界面的FrameLayout,一部分是作为侧边栏的ListView。
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/left_drawer" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/holo_blue_light" android:dividerHeight="1dp" /></android.support.v4.widget.DrawerLayout>
然后在主Activity的onCreate()中设置侧边栏菜单
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.drawerlayout); mNavigationDrawerItemTitles= getResources().getStringArray(R.array.navigation_drawer_items_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); ObjectDrawerItem[] drawerItem = new ObjectDrawerItem[3]; // 三个菜单选项 drawerItem[0] = new ObjectDrawerItem(R.drawable.reset, "Create"); drawerItem[1] = new ObjectDrawerItem(R.drawable.security, "Read"); drawerItem[2] = new ObjectDrawerItem(R.drawable.touch, "Help"); DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.listview_item_row, drawerItem); mDrawerList.setAdapter(adapter); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); // 初始化状态 selectItem(0); }
菜单部分很简单,就是普通的ListView,设置好adapter以及listener就完事儿了。至于主界面,可以使用fragment来填充,当用户点击不同的菜单的时候切换不同的fragment即可。
private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(position); } }private void selectItem(int position) { CreateFragment fragment = null; switch (position) { case 0: fragment = new CreateFragment(); fragment.setTitle("Create"); fragment.setIcon(R.drawable.reset); break; case 1: fragment = new CreateFragment(); fragment.setTitle("Read"); fragment.setIcon(R.drawable.security); break; case 2: fragment = new CreateFragment(); fragment.setTitle("Help"); fragment.setIcon(R.drawable.touch); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); ActionBar ab = getActionBar(); if (ab != null) { ab.setTitle(mNavigationDrawerItemTitles[position]); } mDrawerLayout.closeDrawer(mDrawerList); } else { Log.e("MainActivity", "Error in creating fragment"); } }
可从这里下载demo源码。
0 0
- 【support包学习】DrawerLayout的使用
- DrawerLayout简单使用之实现侧滑菜单(来自于support V4包)
- 使用design包的下的 DrawerLayout 抽屉--基础
- Android V4包下DrawerLayout的学习及回顾
- 关于android support v7包的使用
- Android Support Library包使用的问题
- Support Design Lib包的使用
- 学习使用DrawerLayout
- Android DrawerLayout的学习
- DrawerLayout的学习
- DrawerLayout的基本使用
- Android - DrawerLayout的使用
- DrawerLayout的基本使用
- DrawerLayout控件的使用
- Android DrawerLayout的使用
- DrawerLayout的使用例子
- DrawerLayout的使用
- DrawerLayout的使用
- 计时器+毫秒转换为时间格式
- Android 内存泄漏调试
- Codeblocks使用
- GitLab/Git在AndroidStudio上的配置和简单使用 ——诺诺"涂鸦"记忆
- 使用 GNU Libtool 创建库
- 【support包学习】DrawerLayout的使用
- java正则表达式抽取html数据
- while和if的区别
- SecureCRT无法连接VMware
- OpenGL扩展的使用
- Linux内核学习方法论
- while和if的区别
- 0025二叉树的设计与实现
- 血泪安卓安装教程