DrawerLayout侧滑菜单

android滑动更改字体大小 android滑动更改字体大小 需求:用户自定义apk字体大小 解决方法: 第一步:需要更改大小的字体布局设置大小android:textSize=“14sp”, 不需要更改大小的字体布局设置大小android:textSize=“14dp”, 第二步:在Constants中加入代码 public static double fontsize=1; //当前字体缩放大小 /** * 将字符串数据保存到本地 * * @param context 上下文 * 阅读详情

之前写过一篇关于SlidingMenu的侧滑,谷歌官方的DrawerLayout侧滑,唯一比较蛋疼的地方是手势滑动的时候,需要滑动屏幕的最边缘才能把侧滑菜单拉出来,所以也顺便修改了侧滑菜单的有效响应距离。
代码如下:

public class MainActivity extends Activity {
    private ListView mListView;
    private List<String> listData;
    private DrawerLayout drawerlayout;
    private Button start_slidingMenu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mListView = (ListView) findViewById(R.id.listview);
        drawerlayout = (DrawerLayout) findViewById(R.id.drawerlayout);
        start_slidingMenu = (Button) findViewById(R.id.start_slidingMenu);
        listData = new ArrayList<>();
        initData();
//        drawerlayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);//禁用手势滑动打开侧滑菜单
        mListView.setAdapter(new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,listData));
        start_slidingMenu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                drawerlayout.openDrawer(GravityCompat.START);//打开侧滑菜单
            }
        });
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ToastUtil.showShort(MainActivity.this,"点击了"+position);
                drawerlayout.closeDrawers();//关闭侧滑菜单
            }
        });
    }

    private void initData() {
        for(int i=0;i<5;i++){
            listData.add("数据"+i);
        }
        try {
                //网上有修改的封装
                Field  field = drawerlayout.getClass().getDeclaredField("mLeftDragger");
                field.setAccessible(true);
                ViewDragHelper mLeftDragger = (ViewDragHelper) field.get(drawerlayout);
                Field field1 = mLeftDragger.getClass().getDeclaredField("mEdgeSize");
                field1.setAccessible(true);
                DisplayMetrics metrics = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(metrics);
                field1.setInt(mLeftDragger, (int) (metrics.widthPixels*0.3));//修改有效滑动响应宽度为屏幕宽度的百分之30.
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

需要注意的是xml代码是布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawerlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.lenovo.demo.MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <Button
            android:id="@+id/start_slidingMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="展开"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#cccccc"
        android:orientation="vertical"
        android:tag="START">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/recharge_bg"
            android:scaleType="centerCrop"/>
        <ListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</android.support.v4.widget.DrawerLayout>

注意:首先,根节点就是android.support.v4.widget.DrawerLayout,
其次,里面包含的第一个ViewGroup是Activity显示的布局,第二个ViewGroup或者view才是侧滑菜单的布局,最后,需要侧滑菜单布局的根节点设置:android:layout_gravity=”start”(不建议使用left或者right)。
————————————————————————————————————————————————————————————————
如果想实现在拉出侧滑菜单的带有动画效果的缩放效果的话,可以在侧滑菜单View的跟布局节点上打上一个标记,如:android:tag="START"

然后在初始化DrawerLayout的时候,设置一个侧滑监听:

drawerlayout.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                View mContent = leftMenu.getChildAt(0);
                View mMenu = drawerView;
                float scale = 1 - slideOffset;
                float rightScale = 0.8f + scale * 0.2f;
                if (drawerView.getTag().equals("START")) {
                    float leftScale = 1 - 0.3f * scale;
                    ViewHelper.setScaleX(mMenu, leftScale);
                    ViewHelper.setScaleY(mMenu, leftScale);
                    ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale));
                    ViewHelper.setTranslationX(mContent, mMenu.getMeasuredWidth() * (1 - scale));
                    ViewHelper.setPivotX(mContent, 0);
                    ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2);
                    mContent.invalidate();
                    ViewHelper.setScaleX(mContent, rightScale);
                    ViewHelper.setScaleY(mContent, rightScale);
                } else {
                    ViewHelper.setTranslationX(mContent, -mMenu.getMeasuredWidth() * slideOffset);
                    ViewHelper.setPivotX(mContent, mContent.getMeasuredWidth());
                    ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2);
                    mContent.invalidate();
                    ViewHelper.setScaleX(mContent, rightScale);
                    ViewHelper.setScaleY(mContent, rightScale);
                }
            }

            @Override
            public void onDrawerOpened(View drawerView) {

            }

            @Override
            public void onDrawerClosed(View drawerView) {

            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });

如果用在TabLayout中,还需要判断一下,只有在position==0的情况下才允许右滑显示侧滑菜单,反之,要禁用掉侧滑属性

if(tab.getPosition()!=0){
                    drawerlayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START);
                }else {
                    drawerlayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START);
                }
AndroidStudio之侧滑菜单实现(DrawerLayout) AndroidStudio之侧滑菜单实现基本侧滑菜单实现:1.去掉系统自带的ActionBar2.设置界面的布局3.设置导航按钮监听(显示侧滑菜单)升级版侧滑菜单 基本侧滑菜单实现: 1.去掉系统自带的ActionBar 1.修改MainActivity默认的Style,在values/styles.xml中修改style为: <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 2.设置界面的布局 <?x 阅读详情

相关推荐

【Android】DrawerLayout侧滑菜单控件

DrawerLayout侧滑菜单控件

m0_56047445的博客 1250

NavigationView侧滑框架下修改menu item中textview的大小

一开始想到的是在AndroidManifest文件中引用的android:theme="@style/AppTheme" style风格中添加@style/MenuTextStyle属性去设置textview的大小,后来发现没有效果,查了下发现这个只有对ActionBar设置才有效果 进一步用查找发现这个MenuTextStyle写错了地方,应该写在NavigationView布局里,参考最后一行...

weixin_41279681的博客 339

Android利用DrawerLayout实现侧滑菜单

侧滑菜单是Android5.0 Material Design中最常见的效果之一,现在市场上很多的应用都有滑动菜单的功能,如qq。利用google提供的工具,我们也可以轻松实现这种效果。这种侧滑菜单将一些功能菜单隐藏起来,手指滑动时可以显示出来,点击可以跳转到相应的功能界面,这样可以有效的节省屏幕空间。 现在我们利用系统提供的DrawerLayout控件,实现侧滑菜单不仅简单,而且很方便。效果图

gongwq的博客 3094

android studio字体设置

android studio中的代码默认字体太小,比较伤眼睛,如果想要修改,可以到 Preferences (设置)页面搜索 Font 找到 Colors&Fonts 下的 Font选项,默认字体大小是12,需要先保存才可以修改,点击 Save as 输入一个名字,然后就可以修改字体大小和字体样式了. Android Studio默认的一些字体大小(如侧边栏)的设置如下:

ddddwwww2的博客 3592

Android侧滑菜单实现:深入掌握DrawerLayout

本文还有配套的精品资源,点击获取 简介:介绍了Android中 DrawerLayout 组件的使用方法,这是实现侧滑菜单的关键布局。通过XML布局配置、代码中滑动事件监听以及汉堡菜单触发器的实现,可以创建一个包含主内容和可滑动抽屉视图的用户界面。文章还包括了如何填充抽屉内容和处理菜单项点击事件的详细步骤,为开发者提供了一个功能完善的侧滑菜单实现方案。 1. Dr...

weixin_42590539的博客 2842

Android 高仿QQ5.2双向侧滑菜单DrawerLayout实现源码

Android 高仿QQ5.2双向侧滑菜单DrawerLayout实现源码

android侧滑栏宽度,Android之侧滑菜单DrawerLayout的使用

在androidsupport.v4 中有一个抽屉视图控件DrawerLayout。使用这个控件,可以生成通过在屏幕上水平滑动打开或者关闭菜单,能给用户一个不错的体验效果。DrawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏,主内容区的部分可以随着菜单的点击而变化。DrawerLayout其实是一个控件,跟LinearLayout差不多,直接使用即可。Drawer...

weixin_39695374的博客 1107

ZYNQ开发(2)在Linux系统层上PL-PS通过AXI-DMA传输数据详细步骤及注意事项

参考的网络资料 https://github.com/bperez77/xilinx_axidma/tree/master https://gitlab.gnome.org/HosseinBeheshti/UlteraZed7EV/-/tree/master/petalinux/xilinx_axidma https://www.icode9.com/content-3-925319.html https://blog.csdn.net/weixin_38218267/article/details/1

aizaiyueye的专栏 3448

android侧拉菜单,Android常用控件之DrawerLayout

目录:android.support.v4.widget.DrawerLayout布局xml中:xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/drawer_layout"android:layout_wi...

weixin_32039589的博客 521

基于Simulink的前馈解耦SVPWM整流器仿真

本文提出了一种基于Simulink的前馈解耦SVPWM整流器仿真方案,针对传统双闭环控制存在的耦合严重、电压利用率低等问题进行优化。通过前馈补偿dq轴耦合项(ωLiq和ωLid)结合SVPWM调制算法,实现了电流跟踪误差<3%、电压利用率达0.99、THD<3%的性能指标。文章详细阐述了系统架构设计,包括前馈解耦原理推导、SVPWM算法实现步骤,并提供了完整的Simulink建模方法。仿真结果表明,该方案在动态响应速度(25ms)和直流电压纹波(1.1%)方面显著优于传统SPWM控制。同时给出了

MHD0815的博客 162

手把手教你用Kokoro-82M-v1.1-zh搭建本地TTS服务(含WebSocket接口)

本文详细介绍了如何使用Kokoro-82M-v1.1-zh模型搭建本地TTS服务,包括环境配置、模型部署、WebSocket接口实现及性能优化。通过实战指南,开发者可以快速掌握本地部署TTS系统的关键技术,提升语音交互应用的开发效率。

weixin_30776273的博客 183

安卓侧滑菜单DrawerLayout

安卓DrawerLayout简单实现 很简单的一个案例,没啥功能,就能够实现侧滑。 大概介绍一下吧 1.导入 我的是androidx,不用导入,需要导入的在build.gradle中导入 implementation 'com.android.support:design:28.0.0' 2.介绍 DawerLayout分为侧边菜单和主内容区两部分。 主内容区要放在侧边菜单前面,还有就是主内...

南风子的博客 9498

Sobel原理及计算过程详解

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。

2301_76461741的博客 1万+

Android侧滑菜单——DrawerLayout详解使用

介绍drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。原理原理:添加

程序病毒小队的博客 4212

VS2103+Intel2013+MSMPI运行Fortran并行程序

VS2103+Intel2013+MSMPI运行Fortran并行程序MSMPI安装新建Fortran90项目编写Fortran并行程序在cmd运行编译完成的执行文件 MSMPI安装 我这里采用的是Microsoft MPI v9.0.1,可以点此下载。下载完成后同时安装msmpisdk.msi、msmpisetup.exe两个文件,安装位置默认即可。 其中msmpisdk.msi的默认安装路径在C:\Program Files (x86)\Microsoft SDKs\MPI,该文件包含了mpi环境所需

weixin_43176703的博客 2937

Flutter框架GetX从入门到精通第二篇:路由管理-告别繁琐的Navigator

Flutter框架GetX从入门到精通第二篇:告别繁琐的Navigator。本系列将带你从零开始,一步步掌握 GetX 框架的核心功能与实战技巧。

鹏多多的博客 170

Android之侧滑菜单DrawerLayout

Android之侧滑菜单DrawerLayout 目前侧滑菜单已广泛应用于各大应用,这一菜单形式简洁明了,深受用户的喜爱。在谷歌官方推出 DrawerLayout 之前,开发者大都通过 SlidingMenu 开源库来实现这一功能。而现在 DrawerLayout 被谷歌包含在了 android-support-v4.jar 这个包下,可以让开发者更简单方便的实现侧滑菜单这一功能。Goo

li__haha的博客 600

深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了。CNN是一种能够有效处理图像和其他二维数据的深度学习模型。在传统的CNN中,每个卷积核都会对输入的所有位置进行相同的操作,这可能导致网络无法针对特定区域或特征进行更加关注和重点处理。 注意力机制被引入卷积神经网络中,旨在使网络能够自动地学习和聚焦于输入中的重要区域或特征。通过引入注意力机制,可以增强网络对不同区域或特征的关注度,提取更有意义和相关的特征,从而提高模型的性能和表达能力。

微学AI的博客 3313

关于Android DrawerLayout的侧滑菜单的点击事件

废话不多说,直接上上正文! drawerlayout 是谷歌出的关于侧滑菜单的控件; 基本使用一般将drawerlayout放在跟布局 代码如下: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawe

u011575542的博客 3822

作物生长模型Oryza V3实战2:下载、安装与使用

摘要:ORYZA 现在的应用范围已从单一水稻作物模拟扩展到多个水稻作物模拟。我在csdn站内也上传了“作物生长模型oryza v3大全(含所有参数模板和4个校准程序1个分析工具)”,可以说是全网最全的吧。网上搜索一般下载的v3只有一个a3主程序,不适合作全面与深入的研究,本版本从国外下载回来,一开始少了一个“SoilHydrau.exe”文件,说是有病毒被隔离了,后经历各种技术手段,并向国际水道研究所发送邮件,才得以补全所有的参数化及校准程序、分析工具,来之不易,有缘人得之。

502

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android 使用DrawerLayout快速实现侧滑菜单

一、概述 DrawerLayout是一个可以方便的实现Android侧滑菜单的组件,我最近开发的项目中也有一个侧滑菜单的功能,于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout,那么本篇博客将使用一个简单的案例带你迅速掌握DrawerLayout的用法。

Veer Han 4249

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

DrawerLayout(官方侧滑菜单)的简单使用

嗯,不知道你有没有发现,从上面的DrawerLayout的布局,我们大概可以猜到,DrawerLayout 最多由三个部分组成,中间的内容部分,左边的侧滑菜单部分,右边的侧滑菜单部分组成!接着ListView的布局代码和domain类:Item比较简单,就不给出了,直接上中间Fragment的 布局以及代码吧!首先我们创建两个Fragment以及对应的布局,他们分别是左右侧滑菜单!首先是我们的主布局,注意:最外层要是DrawerLayout哦!布局就三个按钮,点击后替换中间部分的Fragment,布局。

qq_25502783的博客 1151

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android侧滑菜单之DrawerLayout用法详解

最早的时候实现侧滑菜单功能大多时候需要通过github上一个叫做SlidingMenu的开源通过依赖包来实现,后来谷歌在v4包中添加了DrawerLayout来实现这个功能,完全可以替代SlidingMenu,这里我们来学习DrawerLayout的用法 一)创建DrawerLayout 1)在布局文件里将布局设置为DrawerLaout,而且因为是v4包中的功能,所以必须写全包名,注

liujiawei00的博客 5752

DrawerLayout(侧滑菜单)的使用

DrawerLayout,官方提供的一个侧滑菜单 控件,和ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,说到侧滑,相信  很多人都用过github上的SlidingMenu,不过好像有两个版本,一个是单独的,另一个需要依赖另一  个开源项目:ActionBarSherlock; 在 Material Design设计规范中,随处可见的很多侧滑菜单的动画效果,大都可以通

qq_30784675的博客 632

android drawerlayout侧滑菜单,Android中drawerlayout侧滑菜单效果的实现

众所周知,Android中drawerlayout侧滑菜单是一个很常见的功能,而我们大多数人都是使用slidengmenu作为一个开源框架,下面爱站技术频道小编给大家介绍Android中drawerlayout侧滑菜单效果的实现,希望能帮到大家。话不多说,先来发图以表我滴诚意:开始写代码DrawerLayout 是v4包里面的,所以项目里面需要添加v4包,具体怎么添加就不多说了,Navigatio...

weixin_42356145的博客 482

安卓 DrawerLayout 侧滑菜单

借鉴了这位大神的博客:Android高级UI开发(九)之侧滑菜单 --抽屉 布局 <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns

a506656675的博客 240
上一篇: 自定义EditText的使用(一键删除)|ListView item中多edittext问题
下一篇: TabLayout+ViewPager+Fragment(懒加载)实现导航栏
尘彦
博客等级 码龄11年 92粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘彦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值