android Material Design 学习之二:DrawerLayout

本文介绍了Android中的DrawerLayout,这是一种实现侧滑导航栏的控件,常用于节省屏幕空间并提供流畅的动画效果。文章详细讲解了DrawerLayout的简单使用,包括布局设置和导航按钮的添加,包括系统默认和自定义两种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


什么是DrawerLayout

 DrawerLayout 是一种抽屉式导航栏,简单的说就是一种侧滑控件,比如网易云音乐的侧滑就是DrawerLayout 做的。它不仅节省了屏幕控件,也实现了非常好的动画效果。


简单使用

布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start"
    >

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include layout="@layout/tool_bar_layout"/>

</FrameLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity = "start"
        android:text="this is drawer"
        android:background="#fff"

        />

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

这里ToolBar 必须用FrameLayout 包裹起来,否则不会放在顶部。

必须指定TextView 的

   android:layout_gravity = "start"

属性,已确定左滑还是右滑(根据系统语言判断)。


代码设置导航按钮

1,系统:

  ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawerLayout, toolbar, R.string.app_name, R.string.app_name);
        drawerLayout.addDrawerListener(toggle);
        toggle.syncState();

这个导航按钮是系统定制的。


滑动后。

2,自定义导航按钮

首先设置ToolBar 

  Toolbar toolbar = (Toolbar)findViewById(R.id.tool_bar);
  toolbar.setTitle("滑动菜单");

通过ActionBar 设置图标:

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

设置监听事件,点击滑动:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId())
        {
            case android.R.id.home:
                drawerLayout.openDrawer(GravityCompat.START);
                break;
        }
        return super.onOptionsItemSelected(item);
    }

如图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值