activity

Android 8.0跳坑之'Only fullscreen opaque activities can request orientation'

时光总嘲笑我的痴心妄想 提交于 2019-12-02 14:22:32
一大早测试就蹦出一个坑,楼主是想在点击一张图片形成全屏展示的效果,问题来了只能去解决, 先给出解决方案: 1,了解问题是什么, 'Only fullscreen opaque activities can request orientation' 翻译: 只有全屏不透明的activity可以设置orientation 可以看出问题不出在代码上,而是在样式设计中, 2,先确认自己是不是用的Android8.0版本(楼主只想说只在8.0遇到过这个问题,还是遇到了三次,都不长记性的那种) 3,在AndroidManifast文件中找到相关的Activity类的注册,如果有android:screenO rientation='portrait'啥的麻烦删掉 4,在style文件中找<item name="android:windowIsTranslucent">true</item>,然后把true改成false 如果想深入了解,就去看看 windowIsTranslucent到底是个什么玩意: http://blog.csdn.net/kongbaidepao/article/details/52165687 来源: CSDN 作者: 达达CockWire 链接: https://blog.csdn.net/DadaCockWire/article/details/80250152

Android 应用在后台时,跳转 Activity 会自动切换应用至前台

旧街凉风 提交于 2019-12-02 13:49:11
本博客 demo 见: demo 。 平常用手机的时候经常碰到这种情况,用首屏广告举个栗子~很多应用都会有首屏广告 activity A,假设此应用是 app C,如果此时要使用别的应用,就会使得 app C 在后台运行。可是当 activity A 的广告结束后自动跳转 activity B 的时候 app C 总是会自动跳出来切换到前台展示,挡住了我们正在使用的应用,体验非常不好。 这是 android 4.4 后修改的新特性。理想的体验应该是如果应用在后台启动 activity B,那 activity B 也应该同样保持在后台。也就是启动的 activity B 应该保持和启动前时应用的前后台状态一致,才不会影响用户的使用。 有 2 种方案: 1. 在当前 activity A 里处理 在跳转 activity B 前判断应用 C 是否在后台,如果应用 C 在后台,那么就不跳转,并标记变量 ifStartSecondActivity = true,等到应用 C 被切换到前台的时候,因为还没有跳转,所以相当于 activity A 重新在前台展示的时候,在 onResume() 里判断变量 ifStartSecondActivity == true 则执行 startActivity() 跳转至 B;如果应用 C 在前台,正常跳转即可。 判断应用是否在前台: public

Android版与微信Activity侧滑后退效果完全相同的SwipeBackLayout

眉间皱痕 提交于 2019-12-02 12:58:37
本文缘起 因为我做的app里使用了 SwipeBackHelper 的开源库来实现Activity的侧滑后退,本来使用起来一直没什么问题,但在新版本中接入了腾讯x5内核的WebView后就出现了一个小问题。看下图: 图1 图2 图2中两条黑线之间就是图1中所展示的视频播放的区域,但图2中显示的不是视频内容,而是当前的WebActivity下层的MainActivity的部分视图。因为当进入网页播放页面点击视频播放按钮后,视频播放区域会突然变成透明的,直到视频加载出来之后才会开始显示视频内容,该过程持续1秒到数秒不等。本来如果只是闪现一下就消失也没什么大问题,但有的网页中的视频加载过慢,导致这个透明现象出现的时间过长,所以app运营渠道提出需要解决该问题。 问题分析 经测试,该问题出现是因为满足了两个条件: 1.Activity的主题style中满足属性:<item name="android:windowIsTranslucent">true</item> (这也是使用SwipeBackHelper的必要条件); 2.使用x5内核的WebView播放视频。 对于我们的项目来说,x5是不能放弃的,但侧滑退出的效果在三个版本之前就加入了,现在要针对某些页面去掉,也让我觉得很不爽。此时当然是参考微信的效果喽,结果微信给我的结果是这样的: 微信x5内核WebView播放视频效果

高仿微信的滑动返回SwipeBackActivity

你。 提交于 2019-12-02 12:58:20
高仿微信的滑动返回SwipeBackActivity 仔细的同学可以发现,微信的滑动返回其实比一般的滑动返回要细致一点,返回的Activity会显示一部分,然后跟着联动,而以前一般的是直接两个相连的滑动。本文就讲一讲怎么高仿出一个微信的滑动返回功能。 滑动进入 如果只有滑动返回,用户是很难发现有这一功能的,但是如果新的Activity就是从屏幕的右侧向左滑动显示出来的,那么在屏幕左侧滑动能将该Activity滑出的感觉就很顺其自然,这就是一些交互方面的知识了,所以我们先要做出新Activity滑动进入的效果。 这一个效果非常好做,网上的方法基本就是一个使用 overridePendingTransition() 方法,然后使用已经编写好的项目,xml文件来加载出一个transition来,这就可以实现了。 @Override public void startActivity (Intent intent) { super .startActivity(intent); overridePendingTransition(R.anim.in_right, R.anim.out_left); } R.anim.in_right.xml <?xml version="1.0" encoding="utf-8"?> < set xmlns:android = "http:/

滑动返回库SwipeBackLayout解析

♀尐吖头ヾ 提交于 2019-12-02 12:57:21
这个库本身并没有很难, 但是它在交互方面的思想是超前的, 虽然现在我们对滑动返回已经习惯了, 但是在当时还是很新鲜的交互方式. 如果要我实现滑动返回, 我第一个看的一定是DrawerLayout的实现, 它用了ViewDragHelper. 接下来我们结合源码解析SwipeBackLayout是如何做到让我们能使用滑动返回的手势的. SwipeBackActivity 用过的都知道, 想让一个activity具有滑动返回的手势, 需要让它继承SwipeBackActivity. public class SwipeBackActivity extends FragmentActivity implements SwipeBackActivityBase SwipeBackActivity继承FragmentActivity, 其实就相当于在正常的继承关系之间插了它自己进去. 至于SwipeBackActivityBase则是一个定义好的接口, 在SwipeBackActivity中实现 public interface SwipeBackActivityBase { /** * @return the SwipeBackLayout associated with this activity. */ public abstract SwipeBackLayout

SwipeBackLayout 和SwipeBackActivity最完全解析

情到浓时终转凉″ 提交于 2019-12-02 12:54:45
大屏幕时代的到来,目前大部分的APP都支持侧滑关闭Activity及切换Activity的动画效果,这些效果极大的提高了用户体验。比如苹果的safari中的滑动返回操作。 我也参考了github上面的 ikew0ng/SwipeBackLayout 项目写了一个自己的swipebacklayout。在源码的基础上,添加了一些注释,并没有对源码做出太大改动。 项目github地址: https://github.com/CameloeAnthony/SwipeBackActivity 下面对源码进行学习和分析: (1)使用swipebackActivitity ,如图,只需要继承SwipeBackActivity, 并且注意在manifest文件中定义theme,添加如下属性: (2)来看看swipeBackActivity是怎么实现的: package nsu.edu.com.library; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; /** * all the subClass extends from this class to use swipe-back function */ public class

SwipeBackLayout的用法屏幕移动退出

时光总嘲笑我的痴心妄想 提交于 2019-12-02 12:54:23
SwipeBackLayou的简单使用 下载arr包 https://download.csdn.net/download/qq_35427437/10414355 如果想要可以评论或关注 这是5.0以后的新特性(此功能好像在低版本有问题,5.0以上没有黑屏) 使用步骤如下: 1、导入SwipeBackActivity库 2、让当前activity继承于SwipeBackActivity 3、//测拉关闭的控件 private SwipeBackLayout mSwipeBackLayout; mSwipeBackLayout = getSwipeBackLayout(); 4、//设置activity的关闭模式 int edgeFlag = SwipeBackLayout.EDGE_RIGHT; int edgeFlag = SwipeBackLayout.EDGE_BOTTOM; int edgeFlag = SwipeBackLayout.EDGE_ALL; int edgeFlag = SwipeBackLayout.EDGE_LEFT; 滑动关闭当前页面的方向有四种形式 * 1.SwipeBackLayout.EDGE_RIGHT 右边关闭页面 * 2.SwipeBackLayout.EDGE_LEFT 左边关闭页面 * 3.SwipeBackLayout.EDGE

滑动返回SwipeBackLayout

♀尐吖头ヾ 提交于 2019-12-02 12:51:57
一、首先添加依赖 compile 'com.loopeer.android.thirdparty:swipe-back-layout:1.0' 二,创建一个新的Activity,继承SwipeBackActivity。 public class Main2Activity extends SwipeBackActivity { private SwipeBackLayout swipeBackLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); swipeBackLayout=getSwipeBackLayout();//获取滑动控件 swipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);//滑动返回方向 swipeBackLayout.setEdgeSize(200);//设置滑动起始点范围 //setSwipeBackEnable(false);//设置不能被滑动,主要用于第一层Activity } } 其实没有代码也没有问题。只是滑动的时候背景是黑色的

仿微信右滑SwipeBackLayout的使用

我是研究僧i 提交于 2019-12-02 12:51:29
github地址: 点击打开链接 1、添加依赖: compile 'me.imid.swipebacklayout.lib:library:1.0.0' 2、基类Activity继承SwipeBackActivity BaseActivity extends SwipeBackActivity 3、不需要右滑的Activity在onCreate中添加以下语句即可: getSwipeBackLayout().setEnableGesture( false ) ; // 关闭右滑返回上一级 4、为app style添加以下属性 <!-- 解决 activity 切换时的黑屏问题 --> <item name= "android:windowIsTranslucent" > true </item> 5、添加混淆 #SwipeBackLayout -dontwarn me.imid.swipebacklayout.lib.** -keep class me.imid.swipebacklayout.lib.**{ *; } 6、解决滑动返回上一个Activity出现桌面的bug 单独为主界面Activity设置以下属性 <item name= "android:windowIsTranslucent" > false </item> 来源: CSDN 作者: senyoung 链接:

Android 打造完美的侧滑菜单/侧滑View控件

我的梦境 提交于 2019-12-02 12:43:10
概述 Android 打造完美的侧滑菜单/侧滑View控件,完全自定义实现,支持左右两个方向弹出,代码高度简洁流畅,兼容性高,控件实用方便. 详细 代码下载: http://www.demodashi.com/demo/12148.html 一.概述 在App中,经常会出现侧滑菜单,侧滑滑出View等效果,虽然说Android有很多第三方开源库,但是实际上 咱们可以自己也写一个自定义的侧滑View控件,其实不难,主要涉及到以下几个要点: 1.对Android中Window类中的DecorView有所了解 2.对Scroller类实现平滑移动效果 3.自定义ViewGroup的实现 下面现在就来说说这里咱们实现侧滑View的基本思路吧,这里我采用的是自定义一个继承于RelativeLayout的控件叫做XCSlideView类吧。 首先从布局文件中inflater出来一个menuView,然后通过addView的方法,将该侧滑View添加到自定义的控件View中 怎么让XCSlideView 这个侧滑View 隐藏到屏幕之外呢?很简单通过ScrollTo方法,移动一个屏幕宽度的距离即可,这里以 左侧滑出为例吧,只需要这样 XCSlideView.this.scrollTo(mScreenWidth, 0);mScreenWidth是屏幕宽度。下面还要处理的就是底下的