返回顶部
首页 > 资讯 > 精选 >如何在Android中使用DrawerLayout侧滑控件
  • 352
分享到

如何在Android中使用DrawerLayout侧滑控件

androiddrawerlayout 2023-05-30 20:05:39 352人浏览 安东尼
摘要

如何在Android中使用DrawerLayout侧滑控件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。DrawerLayout 类的结构图如下:官方中文简介大概如下:Dr

如何在Android中使用DrawerLayout侧滑控件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

DrawerLayout 类的结构图如下:

如何在Android中使用DrawerLayout侧滑控件

官方中文简介大概如下:

DrawerLayout作为窗口内容的顶层容器,允许从窗口的一个或两个垂直边缘拉出交互式“抽屉”视图。

抽屉定位和布局使用android:layout_gravity 子视图对应的属性进行控制,对应于您希望抽屉从哪个侧面出现:左侧或右侧(或支持布局方向的平台版本上的开始/结束)。请注意,您只能窗口的每个垂直边缘的一个抽屉视图。如果您的布局在窗口的每个垂直边缘配置多个抽屉视图,则会在运行时抛出异常。

3、DrawerLayout 的使用

一般使用 DrawerLayout 侧滑菜单,可以通过 Toolbar + DrawerLayout来实现。

在res/layout 中,新建一个toolbar.xml文件

<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.Toolbar  xmlns:android="Http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  android:id="@+id/tl_custom"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:background="?attr/colorPrimary"  android:minHeight="?attr/actionBarSize"  android:popupTheme="@style/ThemeOverlay.AppCompat.Dark"  app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"></android.support.v7.widget.Toolbar>

在新建一个drawerlayout.xml布局

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/dl_left"  android:layout_width="match_parent"  android:layout_height="match_parent">  <!--主布局-->  <LinearLayout    android:layout_width="match_parent"    android:layout_height="match_parent">  </LinearLayout>  <!--侧滑菜单-->  <RelativeLayout    android:layout_width="180dp"    android:clickable="true"    android:layout_height="match_parent"    android:layout_gravity="left"    android:background="#fff"    >    <LinearLayout      android:id="@+id/ll_home_navigation_top"      android:layout_width="match_parent"      android:layout_height="120dp"      android:layout_alignParentTop="true"      android:background="@color/colorPrimary"      android:gravity="center"      android:orientation="vertical">      <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:src="@mipmap/ic_launcher" />    </LinearLayout>    <ListView      android:id="@+id/lv_left_menu"      android:layout_below="@id/ll_home_navigation_top"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:divider="@null"      android:text="DrawerLayout" />  </RelativeLayout></android.support.v4.widget.DrawerLayout>

主布局activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  tools:context=".MainActivity">  <!--Toolbar-->  <include layout="@layout/custom_toolbar" />  <!--DrawerLayout-->  <include layout="@layout/custom_drawerlayout" /></LinearLayout>

MainActivity.java:

public class MainActivity extends AppCompatActivity {  protected boolean statusBarCompat = true;  private static long DOUBLE_CLICK_TIME = 0L;  //声明相关变量  private Toolbar toolbar;  private DrawerLayout mDrawerLayout;  private ActionBarDrawerToggle mDrawerToggle;  private ListView lvLeftMenu;  private String[] lvs = {"Android", "iOS", "python", "HTML5", "Java"};  private ArrayAdapter arrayAdapter;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    if (statusBarCompat) {      StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.colorPrimary));      transparent19and20();    }    findViews(); //获取控件    toolbar.setTitle("Drawerlayout");//设置Toolbar标题    toolbar.setTitleTextColor(Color.parseColor("#ffffff")); //设置标题颜色    setSupportActionBar(toolbar);    getSupportActionBar().setHomeButtonEnabled(true); //设置返回键可用    getSupportActionBar().setDisplayHomeAsUpEnabled(true);    //创建返回键,并实现打开关/闭监听    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.open, R.string.close) {      @Override      public void onDrawerOpened(View drawerView) {        super.onDrawerOpened(drawerView);      }      @Override      public void onDrawerClosed(View drawerView) {        super.onDrawerClosed(drawerView);      }    };    mDrawerToggle.syncState();    mDrawerLayout.aDDDrawerListener(mDrawerToggle);    //设置菜单列表    arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, lvs);    lvLeftMenu.setAdapter(arrayAdapter);    lvLeftMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {      @Override      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        Toast.makeText(MainActivity.this, "点击"+position , Toast.LENGTH_SHORT).show();      }    });  }  //返回键监听  @Override  public boolean onKeyDown(int keyCode, KeyEvent event) {    if (event.geTKEyCode() == KeyEvent.KEYCODE_MENU && mDrawerLayout != null) {      if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {        mDrawerLayout.closeDrawer(Gravity.LEFT);      } else {        mDrawerLayout.openDrawer(Gravity.LEFT);      }      return true;    } else if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {      if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {        mDrawerLayout.closeDrawer(Gravity.LEFT);      } else {        if ((System.currentTimeMillis() - DOUBLE_CLICK_TIME) > 2000) {          Toast.makeText(MainActivity.this, "再按一次退出", Toast.LENGTH_SHORT).show();          DOUBLE_CLICK_TIME = System.currentTimeMillis();        } else {          finish();        }      }      return true;    }    return super.onKeyDown(keyCode, event);  }  protected void transparent19and20() {    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT        && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {      getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    }  }  private void findViews() {    toolbar = (Toolbar) findViewById(R.id.tl_custom);    mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_left);    lvLeftMenu = (ListView) findViewById(R.id.lv_left_menu);  }}

关于如何在Android中使用DrawerLayout侧滑控件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何在Android中使用DrawerLayout侧滑控件

本文链接: https://lsjlt.com/news/220965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Android中使用DrawerLayout侧滑控件
    如何在Android中使用DrawerLayout侧滑控件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。DrawerLayout 类的结构图如下:官方中文简介大概如下:Dr...
    99+
    2023-05-30
    android drawerlayout
  • Android中如何使用DrawerLayout侧滑控件
    Android中如何使用DrawerLayout侧滑控件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。activity_sliding.xml:<xml&...
    99+
    2023-05-30
  • Android侧滑菜单控件DrawerLayout使用详解
    DrawerLayout是Android V4包下一个带有侧滑功能的布局控件,可以根据手势展开与隐藏侧边栏,也可以随着侧边栏的点击改变主界面区的内容。并且只需要按照DrawerLayout规定的布局格式进行布局,即可实现左右侧滑效果。一、约...
    99+
    2023-05-30
  • android侧滑菜单控件DrawerLayout使用方法详解
    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内...
    99+
    2023-05-30
  • Android使用DrawerLayout仿QQ6.6版侧滑效果
    一讲到侧滑菜单,我相信大家都会想到一个开源控件SlidingMenu,在google还没有出来DrawerLayout的时候几乎都是使用Slidingmenu来实现侧滑效果,可以说是效果很不错,自从google出了Drawerlayout以...
    99+
    2023-05-30
  • Android中DrawerLayout如何实现侧滑菜单效果
    这篇文章主要为大家展示了“Android中DrawerLayout如何实现侧滑菜单效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中DrawerLayout如何实现侧滑菜单效果”...
    99+
    2023-05-30
    drawerlayout android
  • Android之侧滑菜单DrawerLayout的使用介绍
    在android support.v4 中有一个抽屉视图控件DrawerLayout。使用这个控件,可以生成通过在屏幕上水平滑动打开或者关闭菜单,能给用户一个不错的体验效果。 ...
    99+
    2022-06-06
    drawerlayout Android
  • Android使用DrawerLayout实现侧滑菜单效果
    一、概述DrawerLayout是一个可以方便的实现Android侧滑菜单的组件,我最近开发的项目中也有一个侧滑菜单的功能,于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout,那么本篇博客将使用一个简单的案例...
    99+
    2023-05-30
    android drawerlayout 侧滑菜单
  • Vue中怎么使用DrawerLayout侧滑菜单组件
    Vue中怎么使用DrawerLayout侧滑菜单组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HTML结构页面结构很简单,一个抽屉,一个主...
    99+
    2024-04-02
  • Android使用DrawerLayout实现仿QQ双向侧滑菜单
    1、概述 之前写了一个Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭 ,恰逢QQ5.2又加了一个右侧菜单,刚好看了下DrawerLayout,一方面官方的东西...
    99+
    2022-06-06
    菜单 drawerlayout Android
  • 怎么在Android中利用DrawerLayout实现一个双向侧滑菜单
    这篇文章将为大家详细讲解有关怎么在Android中利用DrawerLayout实现一个双向侧滑菜单,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。布局文件的代码:<LinearLayou...
    99+
    2023-05-30
  • 如何在Android应用中使用堆叠滑动控件
    如何在Android应用中使用堆叠滑动控件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。堆叠滑动控件,并增加以下扩展:支持滑动方向控制支持消失方向控制支持嵌入到ViewPa...
    99+
    2023-05-31
    android 堆叠滑动控件 roi
  • 如何在Android应用中实现一个侧滑功能
    本篇文章给大家分享的是有关如何在Android应用中实现一个侧滑功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现说明:通过自定义布局实现:SlidingLayout继承于...
    99+
    2023-05-31
    android roi
  • 如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能
    如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。activity_main.xml<&#...
    99+
    2023-05-31
    android drawerlayout roi
  • 如何在Android UI中使用Switch控件
    这期内容当中小编将会给大家带来有关如何在Android UI中使用Switch控件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,在布局中添加上Switch控件:<Switch &nb...
    99+
    2023-05-30
    switch
  • 如何在Android项目中自定义侧滑菜单栏
    本篇文章给大家分享的是有关如何在Android项目中自定义侧滑菜单栏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自定义侧滑菜单的简单实现不少APP中都有这种侧滑菜单,例如QQ...
    99+
    2023-05-31
    android roi 目中
  • 在Android项目中使用View实现一个侧滑菜单
    在Android项目中使用View实现一个侧滑菜单?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、概述  在App中,经常会出现侧滑菜单,侧滑滑出View等效果,虽然说And...
    99+
    2023-05-31
    android view roi
  • Android开源组件SlidingMenu侧滑菜单使用介绍
    现在很多android应用都有侧滑菜单,效果很不错。 GitHub上有SlidingMenu的开源库,使用起来很方便。 SlidingMenu GitHub地址:https:/...
    99+
    2022-06-06
    菜单 slidingmenu Android
  • Android中ImageSwitcher控件如何使用
    Android中ImageSwitcher控件如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。XML布局文件的代码如下:<ImageSwitcher ...
    99+
    2023-05-30
    android imageswitcher
  • 如何在Android中使用Spinner下拉菜单控件
    这期内容当中小编将会给大家带来有关如何在Android中使用Spinner下拉菜单控件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。activity_main.xml<xml versio...
    99+
    2023-05-30
    android spinner
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作