在Android KitKat中有
的选项 <item name="android:actionBarStyle">@style/TranslucentActionBar</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
如何让应用程序像QuickPic一样执行滚动内容后开始在操作栏下滚动?
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="false"
tools:context="com.jhdev.red.MainActivity"
tools:ignore="MergeRootFrame" >
<GridView
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="@integer/num_columns"
android:clipToPadding="false"/>
</FrameLayout>
答案 0 :(得分:2)
仅适用于Android 3.0及更高版本
如果您的minSdkVersion设置为11或更高,则您的自定义主题应使用Theme.Holo主题(或其后代之一)作为您的父主题。例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:windowActionBarOverlay">true</item>
</style>
</resources>
适用于Android 2.1及更高版本
如果您的应用使用支持库在运行低于Android 3.0的版本的设备上兼容,则您的自定义主题应使用Theme.AppCompat主题(或其后代之一)作为您的父主题。例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.AppCompat">
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
</style>
</resources>
指定布局上边距
当操作栏处于叠加模式时,它可能会遮挡一些应保持可见的布局。要确保此类项始终保持在操作栏下方,请使用actionBarSize指定的高度在视图顶部添加边距或填充。例如:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?android:attr/actionBarSize">
...
</RelativeLayout>
如果您正在使用操作栏的支持库,则需要删除android:前缀。例如:
<!-- Support library compatibility -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize">
...
</RelativeLayout>
在这种情况下,没有前缀的?attr / actionBarSize值适用于所有版本,包括Android 3.0及更高版本。
<强> Details 强>
另请查看此link以获取更多帮助。
答案 1 :(得分:1)
您需要使用:
android:clipChildren="false"
你的FrameLayout上的
答案 2 :(得分:0)
只需在您的应用主题中设置操作栏的样式,如下所示:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:actionBarStyle">@style/TransparentActionBar</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/TransparentActionBar</item>
<item name="windowActionBarOverlay">true</item>
</style>
<!--Default alpha for translucent navigation/status bar is 40% of black color-->
<color name="transparent_color">#6000</color>
<style name="TransparentActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<item name="android:background">@color/transparent_color</item>
<!--Compatibility-->
<item name="background">@color/transparent_color</item>
</style>