内容简介:滑动返回不说是App的标配,但起码也是非常常见的功能了,本章主要讲解集成一个开源的滑动返回库:关于将源码下载下来,在
- 更改SwipeBackActivity
- 初始化SwipeBackLayout
- 滑动时背景是黑色或者全透明
引言
滑动返回不说是App的标配,但起码也是非常常见的功能了,本章主要讲解集成一个开源的滑动返回库: SwipeBackLayout 。抱歉,本篇不是造轮子的文章。
正文
关于 SwipeBackLayout 的集成,我这里不打算使用依赖的方式集成,而是采用源码的方式进行集成,因为后续我还需要对Base进行扩展,需要修改一些源码。
集成源码
将源码下载下来,在 core 下面新建一个 swipebacklayout 包,将源码copy进去。
更改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);
}
演示
其他问题
禁用滑动返回
某些页面是不需要滑动返回的,比如说主页面,这时候可以通过以下方法来禁用:
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>
- 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遗留问题
本篇中的侧滑返回并没有适配 沉浸式 ,也就是我们的状态栏并没有和滑动返回同步。
所以下章将解决和适配这个问题。
软广
来都来了,就给个关注吧,时不时会悄悄的推送一些小技巧的文章~~!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能JavaScript
【美】Nicholas C. Zakas(尼古拉斯.泽卡斯) / 丁琛 / 电子工业出版社 / 2015-8-1 / 65
如果你使用 JavaScript 构建交互丰富的 Web 应用,那么 JavaScript 代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位 JavaScript 专家介绍......一起来看看 《高性能JavaScript》 这本书的介绍吧!