android – 使用ActionBarSherlock从全屏活动平滑过渡

我正在开发一个使用ActionBarSherlock(ABS)的 Android应用程序,需要在API> = 8中工作.问题是活动之间的某些过渡不够顺畅.

例如:我有两个活动,(A)一个始终全屏,(B)另一个不全屏(状态栏和操作栏显示).所需的转换始终是从A到B.当它发生并且加载B活动时,所有内容(包括ABS)都显示为活动是全屏的,然后在再次加载状态栏时调整大小.
在某些设备中,这种效果是微不足道的,但在其他设备中,它变得非常烦人,甚至导致用户触摸视图的错误部分.

全屏声明是通过Manifest活动的“主题属性(任何代码)进行的.例如:

<activity
    android:name = "...."
    android:screenorientation = "portrait"
    android:theme = "@android:style/Theme.NoTitleBar.Fullscreen">
</activity>

在互联网上搜索一些解决方案,我发现了两种主要方法

1)使用Android appcompat库并启用操作栏覆盖,如下所述:https://developer.android.com/training/basics/actionbar/overlaying.html#EnableOverlay.
这个问题是该应用程序还使用HoloEverywhere库,并且在使用HoloEverywhere appcompat时出现了许多错误.所有这些错误都与重复的XML元素有关.我还在所有项目中检查了android-support-v4库以避免错误.

2)使用WindowManager标志并对视图应用顶部填充:http://nubinewsblog.blogspot.com.es/2009/11/smooth-full-screen-transition.html.
通过这种方法,过渡是完美的.最大的问题 – 以及我需要问的原因 – 是我无法对ABS应用上边距,状态栏显示在操作栏上.除了ABS,我可以向下移动所有元素.我想这是因为ABS使用了许多固定的尺寸和属性.

我更喜欢使用第二种方式(2),但我可以尝试使过渡更平滑所需的一切.可以询问任何进一步的实施细节,我会尽快回答.我非常感谢所提供的任何信息或帮助:-)

非常感谢您的所有时间.

PS:我目前正在使用和Android 2.3.6设备进行测试.

PS:当我说全屏时我总是指全屏没有状态栏没有动作栏.

解决方法

解决了我的问题,做了以下事情:

1.-我必须优化所有显示AB的屏幕.在某些情况下,我使用的ListViews没有正确实现,并且在活动中引起了明显的加载时间.

2.-我在开始新活动之前已经显示了状态栏.我的意思是:在启动非全屏幕活动之前,我已在全屏活动中显示状态栏.由此我实现了第二个活动(非全屏)的布局从未调整过大小.

通过这两个小变化,现在AB过渡更加平滑.

关闭了这个问题但是,如果有人有任何疑问,我将很乐意回答.最后但同样重要的是,感谢所有试图帮助解决这个问题的人!

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...