Android 之路 (10) - 集成滑动返回(SwipeBackLayout)

栏目: Android · 发布时间: 5年前

内容简介:滑动返回不说是App的标配,但起码也是非常常见的功能了,本章主要讲解集成一个开源的滑动返回库:关于将源码下载下来,在
  • 更改SwipeBackActivity
  • 初始化SwipeBackLayout
  • 滑动时背景是黑色或者全透明

引言

滑动返回不说是App的标配,但起码也是非常常见的功能了,本章主要讲解集成一个开源的滑动返回库: SwipeBackLayout 。抱歉,本篇不是造轮子的文章。

正文

关于 SwipeBackLayout 的集成,我这里不打算使用依赖的方式集成,而是采用源码的方式进行集成,因为后续我还需要对Base进行扩展,需要修改一些源码。

集成源码

将源码下载下来,在 core 下面新建一个 swipebacklayout 包,将源码copy进去。

Android 之路 (10) - 集成滑动返回(SwipeBackLayout)

更改SwipeBackActivity

SwipeBackActivity重写了 findViewById() 这个方法,在API-26中加入了泛型 T extends View ,所以需要更改一下源码,低于这个版本的API是不需要更改的。

@Override
    public <T extends View> T findViewById(int id) {
        T v = super.findViewById(id);
        if (v == null && mHelper != null)
            return (T) mHelper.findViewById(id);
        return v;
    }

//    @Override
//    public View findViewById(int id) {
//        View v = super.findViewById(id);
//        if (v == null && mHelper != null)
//            return mHelper.findViewById(id);
//        return v;
//    }

初始化SwipeBackLayout

将CandyBaseActivity更改为继承 SwipeBackActivity ,然后在 onCreate() 初始化滑动的模式。

private void initSwipeActivity() {
        getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
    }

演示

Android 之路 (10) - 集成滑动返回(SwipeBackLayout)

其他问题

禁用滑动返回

某些页面是不需要滑动返回的,比如说主页面,这时候可以通过以下方法来禁用:

getSwipeBackLayout().setEnableGesture(false);

滑动时背景是黑色或者全透明

在某些机型上面滑动的时候背景是纯黑色的,或者是全透明能看到桌面,这种情况可以通过设置不同的样式来解决:

1.首先设置背景透明

<item name="android:windowIsTranslucent">true</item>

2.再给启动APP时的Activity单独设置不透明

<style name="AppThemeMain" parent="AppTheme">
        <item name="android:windowIsTranslucent">false</item>
 </style>
  1. AndroidManifest.xml中单独设置不透明的背景风格
<activity android:name=".main.activity.MainActivity"
               android:theme="@style/AppThemeMain"
               android:launchMode="singleTask">
		<intent-filter>
				<action android:name="android.intent.action.MAIN"/>
			<category android:name="android.intent.category.LAUNCHER"/>
		</intent-filter>
</activity>

结束

总结

本文篇幅较少,只做了集成介绍和一个小问题的解决方案。

源码-tag-v0.10

遗留问题

本篇中的侧滑返回并没有适配 沉浸式 ,也就是我们的状态栏并没有和滑动返回同步。

Android 之路 (10) - 集成滑动返回(SwipeBackLayout)

所以下章将解决和适配这个问题。

软广

来都来了,就给个关注吧,时不时会悄悄的推送一些小技巧的文章~~!

Android 之路 (10) - 集成滑动返回(SwipeBackLayout)

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

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据之眼

大数据之眼

[德]尤夫娜·霍夫施泰特 / 陈巍 / 浙江文艺出版社 / 2018-5-7 / 68.00元

德国狂销10万册的大数据商业应用畅销书,经典之作《大数据时代》的姊妹篇。 该书在德语国家促发了一场关于大数据,人工智能与人的关系建构的大讨论。 德国大数据与人工智能领域权威,首度为中国读者亲笔作序。 在后大数据时代,如何维护自己的隐私,如何巧妙利用资源获得更多金钱? 一部对大数据发展所产生的问题进行思考和规避的先知式作品。 当智能机器欲“优化”我们,入侵我们的生活,统......一起来看看 《大数据之眼》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具