3

在 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>
4

3 回答 3

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 及更高版本。

细节

另请查看此链接以获得更多帮助。

于 2014-02-13T09:22:27.783 回答
1

你需要使用:

android:clipChildren="false" 

在你的 FrameLayout

于 2014-09-04T22:02:29.203 回答
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>
于 2016-03-11T00:47:37.063 回答