DrawerLayout——侧滑

2023-12-22 14:32
文章标签 侧滑 drawerlayout

本文主要是介绍DrawerLayout——侧滑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天准备做一个侧滑,以前本来是用的SlidingMenu实现,忽然想起来,前几个月有人跟我说DrawerLayout也可以实现侧滑,那么就来试一下

布局:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/myDrawerLayout"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="New Text"android:textColor="@color/txt_gray"android:textSize="20dp" /><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="end"android:background="@color/colorAccent"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="shflksjdflkjsdfs"android:textColor="@color/txt_orange"android:textSize="20dp" /></LinearLayout>
</android.support.v4.widget.DrawerLayout>
注意:里边有一行关键的代码:(红色部分的代码)

<LinearLayoutandroid:layout_width="wrap_content"android:layout_height="match_parent"<span style="color:#ff0000;">android:layout_gravity="end"</span>android:background="@color/colorAccent"android:gravity="center">
该代码表示,是从左右那个位置滑动(上下没有试,可以自己尝试下),必须写,不写不能实现滑动功能

activity代码:

public class SevenActivity extends Activity {private ActionBarDrawerToggle mActionBarDrawerToggle;private DrawerLayout myDrawerLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.drawer_layout);myDrawerLayout = (DrawerLayout) findViewById(R.id.myDrawerLayout);//监听mActionBarDrawerToggle = new ActionBarDrawerToggle(this, myDrawerLayout, R.mipmap.ic_launcher,
<span style="white-space:pre">	</span>R.string.drawer_open, R.string.drawer_close);}
至此,一个侧滑就完成了,我做的是左滑的功能。

<pre name="code" class="java" style="line-height: 26px;"> mActionBarDrawerToggle = new ActionBarDrawerToggle(this, myDrawerLayout, R.mipmap.ic_launcher,
<span>	</span>R.string.drawer_open, R.string.drawer_close);

 

这是drawerlayout的监听,他有三种方法

1. 设置DrawerLayout.DrawerListener作为监听器类,里面包含四个回调函数。

代码如下:
[java]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. mDrawerLayout.setDrawerListener(new DrawerListener() {  
  2.         /** 
  3.          * 当抽屉滑动状态改变的时候被调用 
  4.          * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。 
  5.          * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE 
  6.         */  
  7.         @Override  
  8.         public void onDrawerStateChanged(int arg0) {  
  9.             Log.i("drawer""drawer的状态:" + arg0);  
  10.         }  
  11.         /** 
  12.          * 当抽屉被滑动的时候调用此方法 
  13.          * arg1 表示 滑动的幅度(0-1) 
  14.          */  
  15.         @Override  
  16.         public void onDrawerSlide(View arg0, float arg1) {  
  17.             Log.i("drawer", arg1 + "");  
  18.         }  
  19.         /** 
  20.          * 当一个抽屉被完全打开的时候被调用 
  21.          */  
  22.         @Override  
  23.         public void onDrawerOpened(View arg0) {  
  24.             Log.i("drawer""抽屉被完全打开了!");  
  25.         }  
  26.         /** 
  27.          * 当一个抽屉完全关闭的时候调用此方法 
  28.          */  
  29.         @Override  
  30.         public void onDrawerClosed(View arg0) {  
  31.             Log.i("drawer""抽屉被完全关闭了!");  
  32.         }  
  33.     });  

2. 设置DrawerListener的子类SimpleDrawerListener,使用这个类的时候不必实现全部的回调函数,可以根据自己的需要重写相应的方法。

代码如下:
[java]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {  
  2.             @Override  
  3.             public void onDrawerClosed(View drawerView) {  
  4.                 super.onDrawerClosed(drawerView);  
  5.             }  
  6.             @Override  
  7.             public void onDrawerOpened(View drawerView) {  
  8.                 super.onDrawerOpened(drawerView);  
  9.             }  
  10.         });  

3.  使用DrawerListener的子类ActionBarDrawerToggle。一般与ActionBar结合使用。

代码如下:
[java]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,  
  2.                 R.drawable.ic_drawer, R.string.drawer_open,  
  3.                 R.string.drawer_close) {  
  4. @Override  
  5. public void onDrawerClosed(View drawerView) {  
  6.     getActionBar().setTitle(mTitle);  
  7.     invalidateOptionsMenu();  
  8. }  
  9. @Override  
  10. public void onDrawerOpened(View drawerView) {  
  11.     getActionBar().setTitle(mDrawerTitle);  
  12.     invalidateOptionsMenu();  
  13.     }  
  14. };  
  15. mDrawerLayout.setDrawerListener(mDrawerToggle);  
所谓监听,无非就是打开抽屉之后的操作,关闭抽屉之后的操作嘛,
调用closeDrawer()和openDrawer()可以关闭和打开抽屉。




这篇关于DrawerLayout——侧滑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524299

相关文章

Android ToolBar+DrawerLayout的实现

实现思路: 1.关联相应的依赖包 compile ‘com.android.support:appcompat-v7:25.3.1’ 2.主布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

HTML5培训第14节课堂笔记(列表滑动删除的实现、侧滑菜单的生成)

HTML5培训第14节课堂笔记   1.列表滑动删除的实现: (1)li要改造 <liclass="mui-table-view-cell">                   <divclass="mui-slider-left mui-disabled">                      <aclass="mui-btn mui-btn-red">删除</a>

侧滑删除进阶(五)

*********************************************跟上一篇效果一样*********************************** activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools

侧滑删除进阶(四)

最近在写滑动删除,网上代码又是看的云里雾里,果断自己研究,虽然效果不太好把,但是思路很清晰,代码逻辑很简单 先来看主页面布局 activity_main.xml--很简单就一个自定义listview <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://

侧滑删除进阶(三)

附上一张不是效果的效果图,之前图丢了,从新弄下,大概意思就是这个 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="ma

侧滑删除进阶(一)

效果是在某个Item上右滑可以删除某个条目--效果虽然很简单,但是思路很重要 MainActivity package com.yangfuhai.animation1;import java.util.ArrayList;import android.app.ListActivity;import android.os.Bundle;import android.view.MotionE

黑马北京新闻项目连载(2)---侧滑菜单栏、主页面Fragment搭建

项目Json数据下载地址。。。 北京新闻框架代码 侧滑开源库下载。。。 xutil库下载,,, 先看总体的导图 看ui图 ************************************************先看整体布局开始**********************************************************

Android-侧滑菜单(三)

新整理的仿QQ侧滑菜单实现的例子,使用android.support.v4.widget.DrawerLayout和android.support.design.widget.NavigationView实现的,下面先上两张效果图: 效果图也看到了,那么咱们废话不多说,直接上代码: 注意:要在app的build.gradle里添加下面这句,不然可能会报错的 compile 'com.an

Android Toolbar+DrawerLayout使用细节

1.Toolbar Toolbar 是Android 5.0后对针对Actionbar的不足进行改进所提出来的,当然大家也可以继续使用自定义的Title但是有些效果还是直接使用现成的轮子比较好,而且对于AndroidUI统一也是有好处的。 1.1Toolbar的使用 Toolbar只需要引用v7包的基础上在布局界面使用<Toolbar/>类似于控件一样使用就可以了。 涉及到样式问题,这里有两

Android 学习之drawerlayout写侧滑菜单

Android 学习之Drawerlayout写侧滑菜单 我们经常利用SlidingMenu来实现侧滑菜单,谷歌推出的DrawerLayout也可以实现侧滑菜单,完全可以替代SlidingMenu,如下图所示都是用SlidingMenu开发的实例。 1、项目结构                                                     JAVA