DrawerLayout已经出来非常久了,个人认为国内的app都深受ios的毒害在设计上都争先模仿ios的风格,都忘了什么是独特的Android风格。自己得先学的然后跟产品争取在项目中使用上一系列的Android风格,碰巧DrawerLayout菜单导航被我争取到了,用到了项目上。

首先 DrawerLayout存在于v4包中。我们仅仅须要在xml配置就可以

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawerLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world"
android:textColor="@android:color/black"
android:gravity="center"/> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffffff"
android:orientation="vertical"/> </android.support.v4.widget.DrawerLayout>

在这须要介绍下ActionBarDrawerToggle。控制DrawerLayout的显示/隐藏使用。

在Activity中的两个回调函数中使用它:

onConfigurationChanged

onOptionsItemSelected

调用ActionBarDrawerToggle.syncState() 在Activity的onPostCreate()中。指示。ActionBarDrawerToggle与DrawerLayout的状态同步。并将ActionBarDrawerToggle中的drawer图标,设置为ActionBar的Home-Button的icon

public class DrawerActivity extends AppCompatActivity {

    DrawerLayout mDrawerLayout;
ActionBarDrawerToggle toggle; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
toggle = new ActionBarDrawerToggle(DrawerActivity.this, mDrawerLayout, R.string.hello_world, R.string.hello_world);
mDrawerLayout.setDrawerListener(toggle); getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("TestDrawerLayout");
} @Override
public void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
toggle.syncState();
} @Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toggle.onConfigurationChanged(newConfig);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
if (toggle.onOptionsItemSelected(item))
return true;
return super.onOptionsItemSelected(item);
}
}

以上几步设置就可以在项目中成功使用DrawerLayout。可是须要注意几点:

1.android.support.v4.widget.DrawerLayout是存在于v4包下

2.主题须要显示ActionBar,比如Theme.AppCompat.Light.DarkActionBar

3.ActionBarDrawerToggle是个DrawerListener实现,我们能够自己写DrawerListener实现特定的要求。

我们能够发现独具自带的Android的风格我们使用起来也是非常easy。而我们却深受ios的影响太多了。

最新文章

  1. 使用 RequireJS 优化 Web 应用前端
  2. 最清晰的Android多屏幕适配方案
  3. poj3484 Showstopper 二分
  4. Vijos P1062 迎春舞会之交谊舞
  5. Intellij Idea 13 vmoptions (Mac版本)
  6. 自制单片机之七……扩展:DS18B20温度测量
  7. C# System.Object基类
  8. Markdown 编写规范
  9. Java-IO之FileDescriptor
  10. python序列化与反序列
  11. beta版本汇总
  12. windows下远程连接Mysql
  13. linux文件管理之查找
  14. AD账号解锁
  15. Python多线程应用示例
  16. Tomcat启动中文乱码解决方法
  17. Linux基础-yum软件包管理
  18. Java并发—— 关键字volatile解析
  19. Lintcode---二叉树的层次遍历(原型)
  20. HDU 6178 Monkeys

热门文章

  1. springBoot AOP切面编程
  2. js中click重复执行
  3. Linux内核网络栈源代码分析
  4. [转载]robo3t在Ubuntu 16.04中报错的解决方法
  5. iOS7开发技巧
  6. ASIHTTPRequest实现断点续传
  7. wireshark学习笔记
  8. c# winform 最小化到托盘
  9. 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 【转】
  10. es6 - 导入导出