Android-屏幕左右侧滑(二)

news/2024/11/29 21:27:14/

第二种方式我们介绍的是使用Android源生控件android.support.v4.widget.DrawerLayout来实现屏幕的左侧滑和右侧滑(其中包括点击侧滑和手动滑动侧滑),还可以用代码来控制打开和关闭手动侧滑:

先付上两张效果图供参考,如下:

首页

左侧滑

右侧滑

下面附上实现的完整代码:

布局文件activity_sliding.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Android源生侧滑控件——DrawerLayout -->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/main_drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@android:color/transparent"><!-- 左侧滑动栏 --><LinearLayoutandroid:id="@+id/main_left_drawer_layout"android:layout_width="300dp"android:layout_height="match_parent"android:layout_gravity="start"android:background="@color/colorAccent"android:orientation="vertical"><ImageViewandroid:layout_width="match_parent"android:layout_height="100dp"android:src="@mipmap/ic_launcher"android:scaleType="centerCrop"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="了解会员特权" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="QQ钱包" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="个性装扮" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="我的收藏" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="我的相册" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="我的文件" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:text="免流量特权" /></LinearLayout><!-- 下面显示的主要是主界面内容 --><RelativeLayoutandroid:id="@+id/main_content_frame_parent"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@android:color/transparent"android:gravity="center"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:onClick="openLeftLayout"android:text="左边" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginLeft="100dp"android:onClick="openRightLayout"android:text="右边" /></RelativeLayout><!-- 右侧滑动栏 --><RelativeLayoutandroid:id="@+id/main_right_drawer_layout"android:layout_width="240dp"android:layout_height="match_parent"android:layout_gravity="end"android:background="@color/colorPrimary"android:paddingTop="50dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="右边菜单测试" /></RelativeLayout></android.support.v4.widget.DrawerLayout>

其中左侧滑的菜单部分以android:layout_gravity="start"来表示,右侧滑菜单部分以android:layout_gravity="end"来表示,左右侧滑的宽度以android:layout_width="xxdp"来表示。

DrawerSlidingActivity.java类的控制代码内容:

package com.junto.leftrightslideactivity.activity;import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;import com.junto.leftrightslideactivity.R;/*** Created by WangJinyong on 2018/9/26.* Android原生侧滑控件*/public class DrawerSlidingActivity extends Activity {private ActionBarDrawerToggle drawerbar;private DrawerLayout main_drawer_layout;private LinearLayout main_left_drawer_layout;//左侧滑动栏private RelativeLayout main_right_drawer_layout;//右侧滑动栏@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sliding);initView();initEvent();}private void initView(){main_drawer_layout = findViewById(R.id.main_drawer_layout);//设置菜单内容之外其他区域的背景色main_drawer_layout.setScrimColor(Color.TRANSPARENT);
//        main_drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);//关闭手势滑动
//        main_drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);//打开手势滑动//左边菜单main_left_drawer_layout = findViewById(R.id.main_left_drawer_layout);//右边菜单main_right_drawer_layout = findViewById(R.id.main_right_drawer_layout);}//设置开关监听private void initEvent(){drawerbar = new ActionBarDrawerToggle(this,main_drawer_layout,R.string.open,R.string.close);main_drawer_layout.setDrawerListener(drawerbar);}//左边菜单开关事件public void openLeftLayout(View view){if (main_drawer_layout.isDrawerOpen(main_left_drawer_layout)) {main_drawer_layout.closeDrawer(main_left_drawer_layout);} else {main_drawer_layout.openDrawer(main_left_drawer_layout);}}//右边菜单开关事件public void openRightLayout(View view){if (main_drawer_layout.isDrawerOpen(main_right_drawer_layout)) {main_drawer_layout.closeDrawer(main_right_drawer_layout);} else {main_drawer_layout.openDrawer(main_right_drawer_layout);}}
}

以上为全部内容,有不足之处希望大家多多指出,我们相互交流

源码下载地址:https://download.csdn.net/download/u013184970/10690420


http://www.ppmy.cn/news/278584.html

相关文章

android studio 侧滑菜单,Android Studio实现侧滑菜单(最佳)

在CSDN中我们会看到很多侧滑的案例,但是有的不是少这个就是少那个,很浪费时间,所以我们要仔细看看代码全不全。在多种APP里,比如QQ的主页面就有向右滑动出现菜单栏的情况,今天就来看一下如何实现这种功能。 我的工程文件布局如下: 我们可以看到,侧滑菜单主要由两个页面组…

Android BaseRecyclerViewAdapterHelper拖动和侧滑删除

1.适配器 adapter继承BaseItemDraggableAdapte public class ItemDragAdapter extends BaseItemDraggableAdapter<BsInventoryBeanSub, BaseViewHolder> {//BsInventoryBeanSub是我的Bean类public ItemDragAdapter(List<BsInventoryBeanSub> data) {super(R.layo…

android侧滑菜单的监听,Android侧滑菜单控件DrawerLayout使用详解

DrawerLayout是Android V4包下一个带有侧滑功能的布局控件,可以根据手势展开与隐藏侧边栏,也可以随着侧边栏的点击改变主界面区的内容。并且只需要按照DrawerLayout规定的布局格式进行布局,即可实现左右侧滑效果。 一、约定的抽屉布局 DrawerLayout的布局一般分为三个部分:…

Android-侧滑菜单(三)

新整理的仿QQ侧滑菜单实现的例子&#xff0c;使用android.support.v4.widget.DrawerLayout和android.support.design.widget.NavigationView实现的&#xff0c;下面先上两张效果图&#xff1a; 效果图也看到了&#xff0c;那么咱们废话不多说&#xff0c;直接上代码&#xff1a…

Compose 实现页面侧滑返回

最近研究了一下&#xff0c;使用Compose如何去做类似ios的全屏侧滑返回效果&#xff0c;下面展示成果&#xff1a; 总共需要几个功能进行搭配使用&#xff1a; 1.Accompaint的Pager模块 2.通过反射使当前窗口透明以及不透明 思路分析&#xff1a; pager类似于android原生的…

RSA算法基础原理

目录 一、简介二、缺点三、数论基础1. 素数2. 模运算3. 互质关系4. 欧拉函数第一种情况第二种情况第三种情况第四种情况第五种情况 5. 欧拉定理6. 模反元素 四、RSA密钥生成步骤1. 随机选择两个不相等的质数p和q。2. 计算p和q的乘积n。3. 计算n的欧拉函数φ(n)。4. 随机选择一个…

在CSDN逮到一个阿里10年老测试,聊过之后收益良多...

老话说的好&#xff0c;这人呐&#xff0c;一但在某个领域鲜有敌手了&#xff0c;就会闲得蛋疼。 前几天我在上班摸鱼刷CSDN的时候认识了一位阿里测试大佬&#xff0c;在阿里工作了10年&#xff0c;因为本人天赋比较高&#xff0c;平时工作也兢兢业业&#xff0c;现在企业内有…

Spring高手之路2——深入理解注解驱动配置与XML配置的融合与区别

文章目录 1. 配置类的编写与Bean的注册2. 注解驱动IOC的依赖注入与XML依赖注入对比3. Spring中组件的概念4. 组件注册5. 组件扫描5.1 使用ComponentScan的组件扫描5.2 xml中启用component-scan组件扫描5.3 不使用ComponentScan的组件扫描 6. 组件注册的其他注解7. 将注解驱动的…