首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Android DrawerLayout左上角添加3行图标

在Android中,可以通过在DrawerLayout的布局文件中添加一个Toolbar来实现在左上角添加3行图标的效果。具体步骤如下:

  1. 在布局文件中,将DrawerLayout作为根布局,并在其中添加一个Toolbar和一个NavigationView。
代码语言:xml
复制
<androidx.drawerlayout.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/drawer_menu" />

    <!-- 主要内容布局 -->

</androidx.drawerlayout.widget.DrawerLayout>
  1. 在Activity中,设置Toolbar作为ActionBar,并添加HomeAsUp按钮来显示DrawerLayout。
代码语言:java
复制
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeAsUpIndicator(R.drawable.ic_menu); // 设置HomeAsUp按钮图标
}
  1. 在Activity的onOptionsItemSelected方法中,处理HomeAsUp按钮的点击事件,以及打开和关闭DrawerLayout。
代码语言:java
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
        if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
            drawerLayout.closeDrawer(GravityCompat.START);
        } else {
            drawerLayout.openDrawer(GravityCompat.START);
        }
        return true;
    }
    return super.onOptionsItemSelected(item);
}

这样,就可以在Android的DrawerLayout左上角添加3行图标,并实现点击图标打开和关闭侧边栏的功能。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/umeng_push

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DrawerLayout结合Tollbar实现菜单侧滑效果

DrawerLayout(抽屉布局):谷歌官方的控件,可以简单的实现侧滑菜单; 此Demo主要是DrawerLayout结合Toolbar实现侧滑左上角返回键实现动画效果,点击左上角返回键实现动画效果并且滑出滑入侧滑菜单...<android.support.v4.widget.DrawerLayout android:id="@+id/drawerLayout" android:layout_width="match_parent...android:textSize="35sp"/ </LinearLayout </android.support.v4.widget.DrawerLayout </LinearLayout...布局文件非常简单,就是一个线性布局,上面是toolbar,下面是DrawerLayout,抽屉布局里面放两个容器布局,上面的是主页面,下面的是菜单页面; 想要实现左上角返回按钮的动画必须给toolbar...drawerView);//开关状态改为closed } }; //第二步:该方法会自动和actionBar关联, 将开关的图片显示在了action上,如果不设置,也可以有抽屉的效果,不过是默认的图标

1.3K10

DrawerLayout详解「建议收藏」

drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件MenuDrawer等的出现之后,google借鉴而出现的产物。.../android.support.v4.widget.DrawerLayout> 有两点要注意:主内容区的布局代码要放在侧滑菜单布局的前面,这可以帮助DrawerLayout判断谁是侧滑菜单,谁是主内容区...的展开和隐藏与actionbar的app 图标关联起来,当展开与隐藏的时候图标有一定的平移效果,点击图标的时候还能展开或者隐藏菜单。...DrawerLayout.closeDrawer方法用于隐藏侧边菜单,DrawerLayout.openDrawer方法用于展开侧边菜单(参见第3点中的代码部分) 5.如何在菜单展开或者隐藏的时候更新...一般的想法是在activity的onOptionsItemSelected方法中判断点击事件是否来自于app图标,然后用DrawerLayout.closeDrawer和DrawerLayout.openDrawer

2.5K10
  • android侧滑菜单控件DrawerLayout使用方法详解

    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件MenuDrawer等的出现之后,google借鉴而出现的产物。...使用步骤: 创建一个DrawerLayout 为了添加导航抽屉,你需要在你的布局界面中声明一个DrawerLayout对象作为布局的根节点。...同时在DrawerLayout内部添加两个view: 添加一个View,它包含应用的主内容(当抽屉隐藏时你的主要布局); 添加另一个View它包含了导航抽屉; 如下面例子所示:该布局使用了DrawerLayout...它包含了两个子节点:一个FrameLayout它包含了主要内容(在运行时将会被Fragment替换) 和 一个ListView作为导航抽屉,上面titlebar 上图标,负责打开、关闭抽屉; <?...:clickable="true" android:id="@+id/imageView" / </LinearLayout <android.support.v4.widget.DrawerLayout

    2.6K10

    Android开发笔记(一百三十三)导航视图NavigationView

    对于Android来说,侧滑功能用到了抽屉布局DrawerLayout,我们只要把页面的根布局设置为DrawerLayout,并指定弹出的侧滑视图,就能通过右拉页面左侧边缘,从而拉出定义好的侧滑视图。...有关DrawerLayout的详细说明参见《Android开发笔记(一百二十)两种侧滑布局》,这里就不再赘述了,接下来要介绍的是Android自带的导航视图NavigationView,它是一个侧滑菜单控件...下面是个采用了DrawerLayout和NavigationView布局文件例子: <android.support.v4.widget.DrawerLayout xmlns:android="http...如果想让菜单图标显示原来的面貌,可在代码中调用setItemIconTintList方法,将图标色彩设置为null。下面是显示原始菜单图标颜色的导航页面截图。 ?...3、每个菜单项只有图标和文字,不能添加其他控件。 4、无法设置每个菜单项的间距。 所以呢,要想实现丰富可定制的导航菜单,还得自己定义一个导航视图。

    2.5K40

    Android 侧滑抽屉菜单

    private DrawerLayout drawerLayout;//滑动菜单 然后在onCreate中添加如下代码: toolbar = findViewById(R.id.toolbar);...五、菜单分类 假如上面的五个菜单是基础功能,那么下面再添加一个扩展菜单。 当然还是要先添加这个菜单图标 icon_share.xml <?...Google自己的库在你创建项目时就已经添加了, google() jcenter() 而第三方库要想使用有些是需要添加jitpack仓库的,也就是我上面添加的代码。...其次我还改变了添加点击事件的图标,之前是给TextView添加点击事件,现在是给LinearLayout添加点击事件。 ? 然后我们回到MainActivity中,去给item添加分割线。...我这里就不详细介绍这种方式了,我们可以用另一种巧妙的方式来解决: 添加静态菜单。 下面再添加两个图标, item_setting.xml <?

    3.9K31

    一篇博客让你了解Material Design的使用

    写法二直接Crash,因为ItemView布局已经有一个Parent了(Inflate的时候把ItemView添加到Recycleview了),不能再添加一个Parent(Recycleview再次添加...DrawerLayout的实现其实是通过ViewDragHelper来实现的,DrawerLayout构造函数的相关代码如下: public DrawerLayout(Context context,...的监听实现一些效果 例如,我们可以实现侧滑的时候,Toolbar左上角的按钮实时变化,我们可以添加一个监听ActionBarDrawerToggle: toolbar = (Toolbar) findViewById...并且在滑动的过程中不断 刷新左上角的Drawerable: @Override public void onDrawerSlide(View drawerView, float slideOffset)...2.backgroundTint是设置背景色(图标是透明背景的) 3.elevation是设置阴影大小 4.fabsize是设置图标的大小,一般为normal(不用设置) 5.rippleColor

    3.3K30

    Android开发之DrawerLayout实现抽屉效果

    谷歌官方推出了一种侧滑菜单的实现方式(抽屉效果),即 DrawerLayout,这个类是在Support Library里的,需要加上android-support-v4.jar这个包。...使用注意点 1、DrawerLayout的第一个子元素必须是默认内容,即抽屉没有打开时显示的布局(FrameLayout),后面紧跟的子元素是抽屉内容,即抽屉布局(ListView)。...4、打开抽屉: DrawerLayout .openDrawer(); 关闭抽屉:DrawerLayout.closeDrawer( ); 一个典型的布局实例: <android.support.v4...解决办法:在include进的那个布局里面,添加clickable=true 2、除了抽屉的布局视图之外的视图究竟放哪里 左、右抽屉和中间内容视图默认是不显示的,其他布局视图都会直接显示出来,但是需要将其放在...> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"

    6.6K60

    Android MVVM框架搭建(九)TabLayout、ViewPager、城市地图天气切换

    <androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width...android:orientation="vertical"> LinearLayout> androidx.drawerlayout.widget.DrawerLayout>...layout> 这里我添加了一个城市的浮动按钮,图标到我源码里面去拿,这个按钮同样是在获取到天气预报信息之后才显示出来,因此在MapFragment中需要先去添加,如下图所示: 这里我们需要给这个按钮一个点击事件...,在onActivityCreated方法中添加如下代码: //点击按钮显示城市弹窗 binding.fabCity.setOnClickListener(v -> binding.drawerLayout.openDrawer...代码仍然在onActivityCreated方法中,如下所示: //抽屉菜单监听 binding.drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener

    1.5K20

    《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法

    实现滑动菜单需要用到DrawerLayout布局。...选择多张图片作为菜单选项的图标,并将它们放在drawable目录下。...菜单列表中一共有6个菜单项,分别指定它们的android:id 属性、android:icon属性(菜单项的图标)和android:title属性(即菜单项显示的文字)。...ActionBar本身由Toolbar实现,最左侧的图标就是用来提示用户的导航按钮(即:应用有滑动菜单)。这个按钮称为“HomeAsUp”,用户点击这个图标,就会显示出滑动菜单界面。...Mock 测试就是在测试过程中,对于某些不容易构造( HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象( JDBC 中的ResultSet

    13310
    领券