drawerlayout怎么使用

1.android material design 的drawerlayout怎么使用

实际上,官方已经提供了实现方法,但是,有很多捞偏门的教程,也有很优秀的第三方。写出来,供还没找到的同学参考。

前提是:你对android.support.v7.widget.Toolbar已经有过了解了。

[java] view plain copy

mMainBar = (Toolbar)this.findViewById(R.id.main_bar);

this.setSupportActionBar(mMainBar);

mDrawerLayout = (DrawerLayout)this.findViewById(R.id.main_drawer_layout);

mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mMainBar, R.string.app_name, R.string.hello_world);

mDrawerLayout.setDrawerListener(mToggle);

以上是在onCreate里要做的事。注意:此时的ActionBarDrawerToggle不是v4包中的,而是android.support.v7.app.ActionBarDrawerToggle;这是关键。

这还没有结束,必须有以下代码才能实现旋转动画:

[java] view plain copy

@Override

protected void onPostCreate(Bundle savedInstanceState) {

super.onPostCreate(savedInstanceState);

// Sync the toggle state after has occurred.

mToggle.syncState();

}

@Override

public void (Configuration newConfig) {

super.(newConfig);

// Pass any configuration change to the drawer toggls

mToggle.(newConfig);

}

2.Android DrawerLayout怎么设置背景图案

DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类。使用DrawerLayout可以轻松的实现抽屉效果,使用DrawerLayout的步骤有以下1几点:

1)在DrawerLayout中,第一个子View必须是显示内容的view,并且设置它的layout_width和layout_height属性是match_parent.

2)第二个view是抽屉view,并且设置属性layout_gravity="left|right",表示是从左边滑出还是右边滑出。设置它的layout_height="match_parent"

在第二个View中设置背景

3.如何实现两级 DrawerLayout

1主页布局文件:如上,使用DrawerLayout需要在布局文件跟目录中引用,v4包中的DrawerLayout标签,并且宽和高,都设置为match_parent.里面framelayout用来现实菜单收起时,下层页面的布局。

而main_left_drawer_layout和main_right_drawer_layout为左右两个抽屉菜单对应的父layout,需要注意的是,在DrawerLayout中,从左侧开始使用android:layout_gravity="start",从右侧开始,使用 android:layout_gravity="end"。 b.主布局代码文件:package com.demo.drawlayout;import android.os.Bundle;import android.support.v4.app.ActionBarDrawerToggle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v4.widget.DrawerLayout;import android.view.View;import android.widget.RelativeLayout;import android.widget.TextView;public class MainFrameLayout extends FragmentActivity { // 抽屉菜单对象 private ActionBarDrawerToggle drawerbar; public DrawerLayout drawerLayout; private TestFragment testFragment; private RelativeLayout left_menu_layout, right_xiaoxi_layout; private TextView text; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.main_frame_activity); initView(); initEvent(); } public void initView(){ testFragment = new TestFragment(); FragmentManager fragmentManager = (); FragmentTransaction f_transaction = fragmentManager.beginTransaction(); f_transaction.replace(R.id.main_content_frame_parent, testFragment); f_transaction.(); initLeftLayout(); initRightLayout(); } public void initLeftLayout(){ drawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_layout); //设置透明 drawerLayout.setScrimColor(0x00000000); //左边菜单 left_menu_layout = (RelativeLayout) findViewById(R.id.main_left_drawer_layout); View view2 = getLayoutInflater().inflate(R.layout.menu_layout, null); text=(TextView)view2.findViewById(R.id.text); text.setText("左边测试菜单"); left_menu_layout.addView(view2); } public void initRightLayout(){ //左边菜单 right_xiaoxi_layout = (RelativeLayout) findViewById(R.id.main_right_drawer_layout); View view = getLayoutInflater().inflate(R.layout.xiaoxi_layout, null); text=(TextView)view.findViewById(R.id.text); text.setText("右边测试菜单"); right_xiaoxi_layout.addView(view); } private void initEvent() { drawerbar = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_launcher, R.string.open, R.string.close) { //菜单打开 @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } // 菜单关闭 @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); } }; drawerLayout.setDrawerListener(drawerbar); } //左边菜单开关事件 public void openLeftLayout() { if (drawerLayout.isDrawerOpen(left_menu_layout)) { drawerLayout.closeDrawer(left_menu_layout); } else { drawerLayout.openDrawer(left_menu_layout); } } // 右边菜单开关事件 public void openRightLayout() { if (drawerLayout.isDrawerOpen(right_xiaoxi_layout)) { drawerLayout.closeDrawer(right_xiaoxi_layout); } else { drawerLayout.openDrawer(right_xiaoxi_layout); } }}。

4.如何设置toolbar里的DrawerLayout按钮的颜色

首先使用 Toolbar 来代替ActionBar ,这样我们就能够把ActionBar嵌入到我们的View体系中,然后我们"禁用"系统的status bar,由 DrawerLayout 来处理status bar,最后抽屉部分往上移,或者裁剪掉status bar那一部分。

控制Status bar 在你的values-v21里面添加新的主题,并设置一下属性: values-v21/themes.xml <style name="AppTheme"> true @android:color/transparent </style> 这里解释一下: ,将它设置为true,系统将在你的window里面绘制status bar,默认为 TRUE ,之所以要写出来是因为你的theme有可能是继承过来的,确保为true。(在这里小插曲一下,因调试时,总以为注释了这段代码就以为是false,程 序员思维害苦了我。

另外从命名来看,Android把它称为system bar,可能是为了与能被我们处理的status bar区分开而做的改变。) statusBarColor 设置为透明是因为我们不再需要系统的status bar,因为我们无法控制它的位置,后面我们将交由 DrawerLayout 来处理。

使用DrawerLayout 首先,你的布局文件应该是和这个类似的: DrawerLayout xmlns:android="url" android:id="@+id/my_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> use a Toolbar so that our drawer can be displayed in front of the action bar --> < xmlns:android="rul" xmlns:app="url" android:layout_width="304dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="@android:color/white" android:elevation="10dp" android:fitsSystemWindows="true" app:insetForeground="#4000"> 在这里布局里面我们用到了一个的开源类 ,它的主要作用就是利用 fitsSystemWindows 的回调方法 fitSystemWindows(Rect insets) 来获取status bar的大小,然后调整画布已达到去掉status bar的效果,所以我们需要在 下设置 fitsSystemWindows 为true。当然你也可以不使用这个类,而改用 layout_marginTop 属性来达到效果。

insetForeground 这个属性是自带的,表示插入区域的前景色,我们设置为带透明的黑色#4000。别忘了使用这个属性需要添加如下代码到attrs.xml里: values/attrs.xml 自此,我们已经实现了将DrawerLayout抽屉的那一部分显示在 Toolbar 和systembar(为了和下面的status bar区分,我们称为system bar)之间了,可是system bar的颜色被我们设置了透明,所以我们接下来要改变status bar的颜色。

改变Status bar的颜色 你可能已经注意到刚才的布局里面 DrawerLayout 的 fitsSystemWindows 属性设置了为true,这是因为我们要在代码里面使用了 DrawerLayout 设置status bar颜色的方法: // 在这里我们获取了主题暗色,并设置了status bar的颜色 TypedValue typedValue = new TypedValue(); getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true); int color = typedValue.data; // 注意方法需要你将fitsSystemWindows设置为true才会生效 DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.my_drawer_layout); drawerLayout.(color); 使用ToolBar来代替ActionBar 在代码里面这样设置: Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar);。

drawerlayout怎么使用

转载请注明出处知识课堂网 » drawerlayout怎么使用

资讯

使用etc的车辆怎么查通行记录

阅读(3)

本文主要为您介绍使用etc的车辆怎么查通行记录,内容包括etc怎么查询收费记录通行记录,etc怎么查询收费记录通行记录,如何进行ETC通行记录查询。打开手机微信,搜索所在地ETC小程序,以【ETC助手】为例,进入后找到【扣费查询】,跳转到【ETC信息校

资讯

夜焰怎么使用

阅读(3)

本文主要为您介绍夜焰怎么使用,内容包括夜焰延时喷剂怎么样,夜焰延时喷剂一天能多次使用吗,夜焰延时喷剂一天能多次使用吗。使用酒精灯的正确步骤:首先,先检查灯芯和灯里有无酒精,这一点是很重要的。

资讯

裱花黄油怎么使用

阅读(4)

本文主要为您介绍裱花黄油怎么使用,内容包括烘焙新手求助,生日蛋糕外面抹的黄油和裱花是直接用,黄油该怎么使用黄油可以干什么,想问一下大家韩式裱花的黄油都用的什么黄油。黄油 奶食品之冠是黄油 黄油,蒙古语称“希日陶苏”,其味道独特纯香,

资讯

金御札怎么使用

阅读(4)

本文主要为您介绍金御札怎么使用,内容包括阴阳师金御札怎么用阴阳师金御札上线时间获得方法攻略,阴阳师御札怎么获得平民获得6000御札,阴阳师金御札玩法神龛兑换随机SSR式神介绍。金御札是阴阳师最新推出的一种游戏道具。目前已经在体验服

资讯

dllinject怎么使用

阅读(3)

本文主要为您介绍dllinject怎么使用,内容包括45软件游戏dll注入工具怎么用,wpe注入器怎样用,怎样才能找到inject.dll。cantt do porocess Inject Dll 错误的解决方法.出现这种错误:1.关闭360保险箱软件(或在360保险箱软件上

资讯

easybcd怎么使用教程

阅读(2)

本文主要为您介绍easybcd怎么使用教程,内容包括easybcd在win10上怎么用,easybcd怎么使用,easybcd在win10上怎么用。1在Windows10 - 10102版系统中运行EasyBCD软件的方法第一步:设置EasyBCD使用权限我们右键点击EasyBCD软

资讯

煤气报警仪怎么使用

阅读(3)

本文主要为您介绍煤气报警仪怎么使用,内容包括煤气报警器的使用方法,便携式煤气报警器正确使用方法,应该怎么正确使用燃气报警器。煤气报警器安装方法在选定的墙面位置,对应随机安装板上的二个安装孔位作好打孔标记。打好安装孔,放入随机安装

资讯

hdmi转换接口怎么使用

阅读(2)

本文主要为您介绍hdmi转换接口怎么使用,内容包括电脑hdmi接口怎么用,台式电脑怎么切换HDMI接口,机顶盒上的HDMI接口怎么用。电脑的HDMI接口,可以用来连接显示器、电视、投影仪等视频输出设备,前提是这些设备同样有HDMI接口。连接方法:将HDMI数

资讯

红米talkback怎么使用

阅读(4)

本文主要为您介绍红米talkback怎么使用,内容包括怎样关闭小米手机的talkback,红米手机talkback模式如何退出,红米手机开了talkback卡了怎样你恢复回原样。首先,请大家打开MIUI系统的桌面,在桌面上找到“设置”菜单按钮,打开设置菜单按钮之后,进

资讯

visio2010科学图形包怎么使用

阅读(3)

本文主要为您介绍visio2010科学图形包怎么使用,内容包括怎样使用科学图形包,请问,VISIO科学图形包怎么加载进去呢,怎么在Visio2010中安装MicrosoftOfficeVisio科学图形包。首先在电脑上打开microsoft visio 20101点击右侧模板类型里的商务

资讯

摩托罗拉大汉显怎么使用

阅读(2)

本文主要为您介绍摩托罗拉大汉显怎么使用,内容包括摩托罗拉传呼机(BP机)用法,壹卡会怎么用,我有几个能正常使用汉显传呼机,现在想利用一下不知道可以用来做什。方法/步骤进入京东商城(注意是京东,不是壹卡会!)挑选好想买的商品,然后把对应商品的网

资讯

加速度传感器怎么使用

阅读(2)

本文主要为您介绍加速度传感器怎么使用,内容包括怎么用加速度传感器测加速度公式是什么,手机加速度传感器是干什么的怎么用啊,android加速度传感器怎么使用。压电式加速度传感器 百科内容来自于: MYD-1360压电式压力传感器压电式加速度传感

资讯

砭石艾灸罐怎么使用

阅读(2)

本文主要为您介绍砭石艾灸罐怎么使用,内容包括砭石艾灸罐大家有用过吗,砭石艾灸罐大家有用过吗,小儿怎样使用砭石艾灸。用的工具不同,物理原理不同。中医拔罐、刮痧、艾灸是中华传统文化,相信大家对刮痧拔罐并不陌生了,但身边有好多朋友不知道

资讯

07款crv定速巡航怎么使用

阅读(3)

本文主要为您介绍07款crv定速巡航怎么使用,内容包括07款CRV的定速巡航怎么设置,本田crv定速巡航怎么用,crv定速巡航怎么用。本田crv定速巡航的操作步骤如下:踩下本田CRV的刹车踏板。

资讯

高压锅使用过程成鸣笛响怎么回事

阅读(1)

本文主要为您介绍高压锅使用过程成鸣笛响怎么回事,内容包括高压锅一直发出鸣笛一样的声音是怎么回事,高压锅开锅后有鸣笛声是怎么回事,在使用电压力锅的时候,为什么老是发出像警笛的声音。高压锅如果没有损坏的情况下使用过程中鸣笛是正常

资讯

自动检票闸机怎么使用

阅读(1)

本文主要为您介绍自动检票闸机怎么使用,内容包括火车站的自动检票机怎么用,如何正确使用检票闸机,自动闸机是怎么检票的。火车站对进、出站的旅客和人员检票,对持优惠优待票和各种乘车证的旅客核对相应的证件,经确认无误后打查验标记,请予配合

资讯

铂电阻怎么使用

阅读(1)

本文主要为您介绍铂电阻怎么使用,内容包括铂电阻怎么使用,铂电阻怎么使用,怎样正确使用热电阻。Pt100,就是说它的阻值在0度时为100欧姆,负200度时为18.52欧姆,200度时为175.86欧姆,800度时为375.70欧姆

资讯

除湿器怎么使用

阅读(1)

本文主要为您介绍除湿器怎么使用,内容包括怎么使用除湿机,除湿机怎样使用,除湿机怎么用除湿机的使用方法。除湿机使用比较简单,基本无需安装配置,连接电源可开机除湿。但是使用中要注意很多细节,不小心可能造成损耗,以欧井除湿机为例,提供一些主

资讯

蘑菇种植机怎么使用

阅读(1)

本文主要为您介绍蘑菇种植机怎么使用,内容包括如何种植蘑菇,种植蘑菇需要什么设备,蘑菇的种植技术操作步骤要详细,好的还加分,种蘑菇需要什么机器。蘑菇,又称食用菌、食用蕈菌、食用真菌,是指具有食用价值的子实体的大型真菌的统称。食用蘑菇

资讯

相机怎么使用的英语作文

阅读(1)

本文主要为您介绍相机怎么使用的英语作文,内容包括他们的相机用英文怎么写,英语作文,怎样使用数码相机说明,写相机的英语作文。G-17 digital camera is made by Fei Da camera factory, which has 30 y

资讯

甲馨茶具烧水怎么使用

阅读(1)

本文主要为您介绍甲馨茶具烧水怎么使用,内容包括甲馨茶具怎么样,茶具上没有烧水开关要怎么烧水,甲馨茶具怎么样。方法/步骤进入京东商城(注意是京东,不是壹卡会!)挑选好想买的商品,然后把对应商品的网页地址复制下来!接着进入壹卡会首页,点击“网

资讯

木棉花怎么使用

阅读(1)

本文主要为您介绍木棉花怎么使用,内容包括木棉花有何作用、如何使用,木棉花有什么作用木棉花如何食用,请问木棉花怎么食用。木棉除了观赏价值高,它的花、皮、根均有药用价值。将晒干了的木棉花煮粥或者煲汤,可以解毒清热驱寒去湿;木棉皮煮水也

资讯

好值泡茶机怎么使用

阅读(1)

本文主要为您介绍好值泡茶机怎么使用,内容包括泡茶器如何使用,身边有人在用茶饮机泡茶,想问下茶饮机是怎么使用的呀,鸣盏茶饮机怎么用的。泡茶器有茶壶、茶海、茶盏、泡茶器等。泡茶器使用方法:茶壶:泡茶时将茶叶放人壶中,再注入开水,将壶盖盖

资讯

在家使用外挂怎么不好使

阅读(1)

本文主要为您介绍在家使用外挂怎么不好使,内容包括挂怎么不好使,外挂在家用不了怎么回事啊,为什么现在我在家就用不到外挂。360 金山毒霸都有,现在就是不知道外挂这2113个东西是不是无法删除干净了回答。外挂文件和游戏的在一个目录吗,如果在