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

相关文章

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

SwipeLayout一个展示条目底层菜单的侧滑控件

由于项目上的需要侧滑条目展示收藏按钮,记得之前代码家有写过一个厉害的开源控件 AndroidSwipeLayout 本来准备直接拿来使用,但是看过 issue 发现现在有不少使用者反应有不少的 bug ,而且代码家现在貌似也不进行维护了.故自己实现了一个所要效果的一个控件.因为只是实现我需要的效果,所以大家也能看到,代码里有不少地方我是写死的.希望对大家有些帮助.而且暂时也不需要 Android

Android控件之Toolbar + DrawerLayout的使用

载请标明出处: http://blog.csdn.net/u011974987/article/details/50963495; 最近闲着没事儿,在关注一些遵循最新的Material Design设计规范的应用和效果,感觉很高大上;一直都没有去尝试过Material Design的一些新控件,很多还是不熟悉的,所以最近就写Demo 来熟悉下这些控件的使用,接下来使用官方支持库来快速实现

Android QQ5.0侧滑菜单

转载请标明出处:http://blog.csdn.net/u011546655/article/details/46564709 背景 相信大家用过QQ的人,都会知道QQ有这样的一个功能,那就是他的菜单,感觉就像抽屉一样被拉出来的感觉,感觉很拉风啊,酷酷的,如果你有一种想要把它给弄清楚,想明白,这是一个好东西,你要把它变成自己的,那么现在就是你的机会,也在此恭喜你,你终于初步具有一个向中级工

DrawerLayout 事件穿透解决方案

今天在使用DrawerLayout的时候遇到一个比较奇葩的问题,在DrawerLayout上下滑动的时候,底部的ListView会获得事件跟着手机滑动。 网上大多数DrawerLayout的实例都是跟google一样,一个listview,所以listview会获得焦点,事件就不会传递了。但是我是用的include加载的布局,所以才会出现这个情况。 解决方法是:在抽屉布局中加入 android

Android5.0系统:Material风格以及DrawerLayout抽屉效果

先上效果图: 主要组件: DrawerLayoutToolbar 首先,配置文件代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app= "http://schemas.a

CSS3模拟侧滑菜单

在APP应用上,常见的一种导航方式是侧滑导航,效果类似于这样: 用CSS3可以对其进行模拟,代码如下: HTML: <nav><div id="toggleMenu"><span id="hide"></span><span id="show"></span></div><ul id="list"><li><a href="#">首页</a></li><li><a href="#">问题

自定义ViewGroup的总结(侧滑特效)

前言: 和自定义View控件一样,我们有时也需要自定义我们想要的ViewGroup,那么此时,我们就需要让其继承ViewGroup,然后重写 里边的onMeasure()和onLayout()方法,下面以侧滑特效为例,来讲解一下自定义ViewGroup所需的流程,关于侧滑特效, 其整体效果图如下: 对于自定义ViewGroup,主要有以下几步: 步骤一:编写ViewGroup

Android使用DrawerLayout和ToolBar实现仿知乎侧滑菜单

侧滑菜单现在在很多app上都可以看到,以下文章主要讲如何实现实现Android的侧滑菜单。可以先看一个简单的侧滑菜单设计。 示例图: 从屏幕左端向右滑动或点击左上角按钮可打开侧滑栏菜单。 具体实现 activity_main.xml <?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayo

Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框 作者:泥沙砖瓦浆木匠 网站:http://blog.csdn.net/jeffli1993 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节。 交流QQ群:【编程之美 365234583】http://jq.qq.com/?_wv=1027&k=XVfBTo 要捐钱的就打支付宝吧:139586