码迷,mamicode.com
首页 > 移动开发 > 详细

Android-DrawerLayout介绍

时间:2015-07-09 00:57:15      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:android   设计   

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的风格我们使用起来也是很容易,而我们却深受ios的影响太多了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android-DrawerLayout介绍

标签:android   设计   

原文地址:http://blog.csdn.net/neacy_zz/article/details/46810253

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!