DrawerLayout抽屉

DrawerLayout抽屉

ONE GOAL,ONE PASSION!  
                                                                --czfy

DrawerLayout就是android.support.v4.widget下的一个普通控件继承至ViewGroup
(在亲爹Google眼中它和LinearLayout一样没有什么区别,还没有LinearLayout
受宠.DrawerLayout其实就是一个Drawer抽屉容器).

官方介绍抽屉的使用


To use a DrawerLayout, position your primary content view as the first child with
a width and height of match_parent. Add drawers as child views after the main
content view and set the layout_gravity appropriately. Drawers commonly use
match_parent for height with a fixed width.

大致意思:
1,使用时,内容界面要作为第一个子view,而且宽和高要使用match_parent.
2,抽屉要设置layout_gravity属性.而且通常高度使用:match_parent,宽度使用:fixed width(具体的宽度)

Drawer positioning and layout is controlled using the android:layout_gravity attribute on child views corresponding to which side of the view you want the drawer to emerge from: left or right. (Or start/end on platform versions that support layout direction.)

大致意思:
抽屉应该设置一个属性layout_gravity = “left”:
left/start 左侧
right/end 右侧

DrawerLayout常用的一些方法:

关闭抽屉 :closeDrawers();

打开抽屉 :drawerlayout.openDrawer(抽屉view);

设置抽屉的阴影:setDrawerShadow(@DrawableRes int resId, @EdgeGravity int gravity) 如果你的抽屉在左边的话设置成 Gravity.LEFT显示.反之.

代码中简单的使用

1,主要就是布局的写法;

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
             <!--  这是内容界面-->
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="right"
            android:text="内容区域" />
          <!--  这个是抽屉
    android:gravity此属性一定要是left/start right/end4种
          一般情况下,这这里是个listview
         -->
        <TextView
            android:id="@+id/tv_left"
            android:layout_width="400dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:gravity="center"
            android:background="#ffff00"
            android:text="抽屉区域" />

    </android.support.v4.widget.DrawerLayout>


</RelativeLayout>

2,可以设置一些其他的效果
public class DrawerLayoutActivity extends Activity {

DrawerLayout drawerlayout;
TextView tv_left;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_drawer_layout);

    tv_left = (TextView) findViewById(R.id.tv_left);
    drawerlayout = (DrawerLayout) findViewById(R.id.drawerlayout);
    //设置抽屉阴影
    drawerlayout.setDrawerShadow(R.drawable.title_bg, Gravity.RIGHT);
    .....
}

}
3,效果图:
这里写图片描述

这个控件的效果和SlidingMenu不一样.抽屉拉出时,内容区域被覆盖了.而SildingMenu没有.

注: 笔者水平有限,如您偶尔看到,发现什么错误,请指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值