Android布局控件DrawerLayout实现完美侧滑效果

 更新时间:2018年08月17日 15:53:21   作者:adolph_jun  
这篇文章主要为大家详细介绍了Android布局控件DrawerLayout实现完美侧滑效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

drawerLayout其实是一个布局控件,跟LinearLayout等控件是一样的,但是drawerLayout带有滑动的功能。只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效果。

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

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

ActionBarDrawerToggle就是DrawerLayout事件的监听器。
ActionBarDrawerToggle有3个方法可以被复写,分别用来实现DrawerLayout打开,关闭,滑动的事件监听:

  • onDrawerOpened DrawerLayout滑出时调用
  • onDrawerClosed DrawerLayout关闭时调用
  • onDrawerSlide DrawerLayout滑动时调用

drawerLayout布局代码:

<android.support.v4.widget.DrawerLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/drawer_layout"
  >
  //主内容
  <FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
      android:gravity="center"
      android:id="@+id/drawer_text"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="123"/>
  </FrameLayout>
  //侧滑菜单
  <ListView
    android:id="@+id/left_drawer"
    android:layout_width="40dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="#111" />
</android.support.v4.widget.DrawerLayout>

mainactivity.java代码

package com.example.wxj.drawerlayoutlearen;
 
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
  private DrawerLayout mDrawerLayout;
  private TextView view;
  private ListView mDrawerList;
  private ActionBarDrawerToggle mDrawerToggle;
  private CharSequence mDrawerTitle;
  private CharSequence mTitle;
  private String[] mPlanetTitles;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
    view = (TextView)findViewById(R.id.drawer_text);
 
    mDrawerToggle = new ActionBarDrawerToggle(
        this,
        mDrawerLayout,
        R.string.open,
        R.string.close
    ){
      @Override
      public void onDrawerClosed(View drawerView) {
        super.onDrawerClosed(drawerView);
        view.setText("close");
      }
 
      @Override
      public void onDrawerOpened(View drawerView) {
        super.onDrawerOpened(drawerView);
        view.setText("dakai");
      }
 
      @Override
      public void onDrawerSlide(View drawerView, float slideOffset) {
        super.onDrawerSlide(drawerView, slideOffset);
        view.setText("huachu");
      }
    };
 
    mDrawerLayout.setDrawerListener(mDrawerToggle);
 
 
  }
}

string.xml代码

<resources>
  <string name="app_name">DrawerLayoutlearen</string>
  <string name="open" />
  <string name="close" />
</resources>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android Studio 3.6 调试 smali的全过程

    Android Studio 3.6 调试 smali的全过程

    这篇文章主要介绍了Android Studio 3.6 调试 smali, 目前最新版的 Android Studio 利用附加功能调试 smali 非常方便,具体操作步骤跟随小编一起看看吧
    2020-02-02
  • Android入门教程之RecyclerView的具体使用详解

    Android入门教程之RecyclerView的具体使用详解

    RecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。接下来讲解RecyclerView的用法
    2021-10-10
  • Android处理图像数据转换的各种方法

    Android处理图像数据转换的各种方法

    这篇文章主要介绍了Android处理图像数据转换的各种方法,本文讲解了RGB值转Bitmap、Color值转Bitmap、字节数组转Bitmap、读取文件转Bitmap、读取资源转Bitmap、输入流转Bitmap等内容,需要的朋友可以参考下
    2015-01-01
  • Kotlin 协程思维模型的引入使用建立

    Kotlin 协程思维模型的引入使用建立

    这篇文章主要为大家介绍了Kotlin 协程思维模型的引入使用及建立详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • android ViewPager实现自动无限轮播和下方向导圆点

    android ViewPager实现自动无限轮播和下方向导圆点

    本篇文章主要介绍了android ViewPager实现自动轮播和下方向导圆点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • adb push命令向设备传输文件的操作步骤

    adb push命令向设备传输文件的操作步骤

    这篇文章主要介绍了adb push命令向设备传输文件的操作步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Android中Fragmen首选项使用自定义的ListPreference的方法

    Android中Fragmen首选项使用自定义的ListPreference的方法

    Android中Fragmen的首选项可以使用自定义的ListPreference,这样Fragment的PreferenceFragment就可以更方便地保存配置信息,需要的朋友可以参考下
    2016-05-05
  • Android Walker登录记住密码页面功能实现

    Android Walker登录记住密码页面功能实现

    这篇文章主要为大家详细介绍了Android Walker登录记住密码页面功能的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • flutter实现切换页面缓存

    flutter实现切换页面缓存

    这篇文章主要为大家详细介绍了flutter实现切换页面缓存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Glide实现加载图片显示进度条效果

    Glide实现加载图片显示进度条效果

    Glide作为安卓开发常用的图片加载库,有许多实用而且强大的功能,那么,下面这篇文章主要给大家介绍了利用Glide实现加载图片显示进度条效果的相关资料,文中给出了详细的示例代码供大家参考学习,需要的朋友们下来一起看看吧。
    2017-05-05

最新评论