操作栏覆盖不按预期工作

时间:2013-09-08 13:09:51

标签: android android-actionbar

我的Android应用程序具有半透明ActionBar。当我触摸屏幕时它会隐藏,并在再次触摸屏幕时再次显示。

/value-11/styles.xml

<style name="FullscreenTheme" parent="android:Theme.Holo">
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

<style name="FullscreenActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:background">@color/black_overlay</item>
</style>

当我启动应用时,ActionBar是半透明的,这是预期的状态。当我使用getActionBar().hide();隐藏它并使用getActionBar().show();再次显示它时,它不再是半透明的。

这是ViewPager中的Fragment。如果我向右滚动,隐藏并显示预期的效果:ActionBarshow();被调用后是半透明的。

更新:每当我向左滚动时,错误就会再次出现。

有人知道如何解决这个问题,所以它也适用于第一页或当用户向左滚动一个或多个时?

1 个答案:

答案 0 :(得分:8)

我解决了我的问题:

ViewPager内部视图的布局如下:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/presentation"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:contentDescription="@string/presentation"
    android:scaleType="fitCenter"
    android:fitsSystemWindows="true" >
</ImageView>

android:fitsSystemWindows="true"对这个奇怪的错误负责,没有这个,一切正常。

抱歉写这么少的代码,我只是认为这是一个javacode问题而且与xml无关。我找不到一个代码块,大概是将是有错误的那个。我应该如何,错误在我的布局文件中。 ;)