Android——MaterialDesign之二DrawerLayout

本文介绍如何使用Android中的DrawerLayout实现滑动菜单功能。详细解释了XML布局配置及Java代码实现过程,包括如何设置菜单的gravity属性以实现流畅的滑动效果,以及如何在Toolbar上添加导航按钮并处理点击事件。
  1. 滑动菜单--DrawerLayout

    滑动菜单就是把一些菜单选项隐藏起来,而不是放置主屏幕中,然后可以通过滑动的方式将菜单显示出来,具有非常的画面效果,就是类似侧边滑动。

     

例子:需要上一次的Toolbar,省略的内容参考Android——MaterialDesign之一Toolbar 

 

<android.support.v4.widget.DrawerLayout

...

android:id="@+id/drawer_layout">

<FrameLayout>

...

</FrameLayout>

 

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:textSize="30sp"
    android:background="#14e163"
    android:text="这是一个菜单 menu"/>

 

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

 

    详解:其中的android:layout_gravity="start"必须指定(包括left、right),这样就会有非常流畅的滑动菜单,还有Material Design 建议在Toolbar的左边加入一个导航按钮,通过点击也能将菜单的内容展示出来。防止用户不知道在屏幕的左侧还是右侧。

 

MainActivity.class

private DrawerLayout drawerLayout;

...

//侧滑菜单
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

 

protected void onCreate(Bundle savedInstanceState) {

...
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
     actionBar.setDisplayHomeAsUpEnabled(true);
     actionBar.setHomeAsUpIndicator(R.mipmap.return_item);
}

}

..

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()){

...

case android.R.id.home:
     drawerLayout.openDrawer(GravityCompat.START);
     break;
default:

}

 return true;
}

 

     详解:其中调用了actionBar的setDisplayHomeAsUpEnabled()方法让导航按钮显示出来,setHomeAsUpIndicator()方法设置一个导航按钮图标。最后在onOptionsItemSelected()方法中对HomeAsUp按钮进行事件处理,调用了drawerLayoutopenDrawer()方法将滑动菜单展示出来,GravityCompat.START来保证这里的行为和XML中定义一致

 

结果如图:

 

转载于:https://www.cnblogs.com/llw1996/p/6769011.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值