Android之侧滑菜单DrawerLayout

本文介绍了如何使用Android官方支持库中的DrawerLayout组件来创建侧滑菜单。侧滑菜单是现代Android应用中常见的设计元素, DrawerLayout简化了这一功能的实现。内容包括DrawerLayout的工作原理、布局结构、使用注意事项以及官方提供的教程和示例。在实际使用中,开发者需要注意主内容区布局的位置,以及侧滑菜单的显示和隐藏方法。
摘要由CSDN通过智能技术生成

Android之侧滑菜单DrawerLayout

  • 目前侧滑菜单已广泛应用于各大应用,这一菜单形式简洁明了,深受用户的喜爱。在谷歌官方推出 DrawerLayout 之前,开发者大都通过 SlidingMenu 开源库来实现这一功能。而现在 DrawerLayout 被谷歌包含在了 android-support-v4.jar 这个包下,可以让开发者更简单方便的实现侧滑菜单这一功能。
  • Google I/O 2013Android更新了Support库,Support Library包中实现了侧滑菜单效果的控件---drawerLayout,支持创建 Navigation Drawer(导航抽屉)模式。
  • drawerLayout其实是一个布局控件,跟LinearLayout等控件是一种东西,但是drawerLayout带有滑动的功能。只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效果。
  • drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。这个东西主要的原理就是左边是一个ListView(抽屉菜单),右边是一个FrameLayout.(用来显示页面的主要内容)。
  • 在需要抽屉菜单的界面,用DrawerLayout 作为界面根控件。在DrawerLayout里面第一个View为当前界面主内容;第二个和第三个View为抽屉菜单内容。如果当前界面只需要一个抽屉菜单,则第三个View可以省略
  • 具体可参考以下链接,官方的开发页是:
    Android Navigation Drawer Design :
    http://developer.android.com/design/patterns/navigation-drawer.html
    Android Navigation Drawer 教程:
    https://developer.android.com/training/implementing-navigation/nav-drawer.html(包含官方Demo的实例 大家也可以自己下载看一下)

    接下来附上完整的drawerLayout的例子,来源于官方网站的demo

Activity:

package com.example.android.navigationdrawerexample;
import java.util.Locale;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.SearchManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
 private DrawerLayout mDrawerLayout;
 private ListView mDrawerList;
 private ActionBarDrawerToggle mDrawerToggle;
 private CharSequence mDrawerTitle;
 private CharSequence mTitle;
 private String[] mPlanetTitles;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值