View—drawerLayout学习

drawerLayout是什么

drawerLayout是一个布局控件,跟LinearLayout等控件是一样;drawerLayout具有滑动的功能,一般用来实现侧滑菜单

怎么用

  1. 和其他布局一样,但是需要作为根布局使用
  2. 宽高必须是 match_parent
  3. 第一个子布局作为主页面布局内容
  4. 第二个子布局作为侧滑菜单的布局

一:布局

<?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">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name3"/>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="start"
    android:background="@color/colorWhite">

    <TextView
        android:id="@+id/drawer_menu1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name2"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>

事件监听

通过 addDrawerListener 来添加监听事件,监听侧滑的打开或者关闭

DrawerListener的可选项有

  1. DrawerLayout.DrawerListener
  2. ActionBarDrawerToggle—能做DrawerListener 的所有事情,同时能将drawerLayout的展开和隐藏与actionbar的app 图标关联起来
  3. DrawerListener的子类SimpleDrawerListener—这个类的时候不必实现全部的回调函数,根据自己的需要重写即可
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {
        
    }

    @Override
    public void onDrawerOpened(View drawerView) {

    }

    @Override
    public void onDrawerClosed(View drawerView) {

    }

    @Override
    public void onDrawerStateChanged(int newState) {

    }
});

要点

主内容布局

  1. 宽度和高度必须都是match_parent****
  2. 不能使用layout_gravity属性

侧滑布局

  1. 必须使用 layout_gravity 属性,可选项 left 、right 或者 start、end

参考

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html

http://www.jianshu.com/p/65f268f01dce

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容