操作栏覆盖层未按预期工作

8
我的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。如果我向右滚动,隐藏和显示就像预期的那样:在调用show();之后,ActionBar是半透明的。
更新:每次我向左滚动时,这个错误都会出现。
有人有什么办法可以修复这个问题,使其在第一页或用户向左滚动了一个或多个页面时也能正常工作吗?

你好,能否提供一些可执行的示例代码,这样更容易识别您的问题。 - harikrishnan
1个回答

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" 是导致这个奇怪错误的原因,如果不加上这一行,所有的都可以正常工作。

很抱歉我只贴出了很少的代码,我之前认为这是一个Java代码问题,而没有关注到XML文件。我也找不到可能存在错误的代码块。但事实上错误发生在我的布局文件中 ;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接