DrawerLayout介绍
导航抽屉显示在屏幕的最左侧,默认情况下是隐藏的,当用户用手指从边缘向另一个滑动的时候,会出现一个隐藏的面板,当点击面板外部或者向原来的方向滑动的时候,抽屉导航就会消失了!
好了,这个抽屉就是DrawerLayout,该类位于V4包中。
当让公司的需求正好需要这样的效果,大于大牛来说可能太小儿科了,但是对于新手来说可以尝试着你实现一下这样的效果。话不多说。
1.布局
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/main_index" />
<RelativeLayout
android:id="@+id/relativeLayout"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#90000000"
android:clickable="true"
android:orientation="vertical">
<com.rempeach.view.CircleImageView
android:id="@+id/drawerLayout_head_iv"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:scaleType="centerCrop"
android:src="@mipmap/default_avatar" />
<TextView
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/drawerLayout_head_iv"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:singleLine="true"
android:text="登录/注册"
android:textColor="#e4c675"
android:textSize="14sp" />
<View
android:id="@+id/line"
android:layout_width="180dp"
android:layout_height="1px"
android:layout_below="@id/login"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:background="@color/color_white" />
<Button
android:id="@+id/bill"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/line"
android:background="@null"
android:gravity="center_horizontal"
android:text="账单"
android:textColor="@color/color_white"
android:textSize="16sp"
android:visibility="gone" />
<Button
android:id="@+id/bind"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/bill"
android:layout_marginTop="20dp"
android:background="@null"
android:gravity="center_horizontal"
android:text="绑定账户"
android:textColor="@color/color_white"
android:textSize="16sp" />
<Button
android:id="@+id/discount_coupon"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/bind"
android:background="@null"
android:gravity="center_horizontal"
android:text="优惠券"
android:textColor="@color/color_white"
android:textSize="16sp" />
<Button
android:id="@+id/help_btn"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/discount_coupon"
android:background="@null"
android:gravity="center_horizontal"
android:text="帮助"
android:textColor="@color/color_white"
android:textSize="16sp" />
<Button
android:id="@+id/above_btn"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/help_btn"
android:background="@null"
android:gravity="center_horizontal"
android:text="关于 UP !"
android:textAllCaps="false"
android:textColor="@color/color_white"
android:textSize="16sp" />
<Button
android:id="@+id/exit"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_marginTop="20dp"
android:background="@null"
android:gravity="center_horizontal"
android:textColor="@color/color_white"
android:textSize="14sp" />
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
这里是我们抽屉里面的布局,而我们主内容则直接用include一个布局,主内容的布局我就不展示了。
很多朋友想实现通过自己设置的image头像点击事件进行弹出抽屉
其实这个实现起来也很方便。几句代码就能实现功能。
mdrawerLayout.openDrawer(Gravity.LEFT);
只要这么简单的一句就行。当然这之前的drawerlayout先要findid,还要给我们的头像控件设置点击效果。
大功告成,这是我第一次写技术博客,先谢了一个简单的例子。当然这也是我个人再开发中遇到的一个需求,希望能对新手有帮助把。有什么问题也可以指出来。谢谢大家