因此,我有一个工具栏,我将其设置为我的 supportActionBar,我希望它处于覆盖模式。在这一点上,我觉得我已经尝试了一切,但似乎没有任何效果。
这是我目前拥有的样式:
<style name="Theme.ArgleBargle" parent="@style/Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorAccent">@color/accent</item>
<item name="vpiIconPageIndicatorStyle">@style/Widget.IconPageIndicator</item>
<item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item>
<item name="windowActionBar">false</item>
<item name="windowActionBarOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowBackground">@color/background</item>
</style>
<style name="CustomActionBar" parent="@style/ThemeOverlay.AppCompat.Light">
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
</style>
这是我的工具栏的代码:
<android.support.v7.widget.Toolbar
android:id="@+id/actionbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/CustomActionBar"/>
最后,这是我在 Activity 中设置它的地方:
actionbar = (Toolbar) findViewById(R.id.actionbar);;
setSupportActionBar(actionbar);
我也试过调用 getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
但没有成功。
最佳答案
所以,事实证明这个问题同时非常简单,但并不明显(至少对我而言)。基本上问题在于,虽然工具栏被设置为操作栏,但它最终仍然是一个在 XML 中声明的布局元素。因此,诀窍当然是确保它在 XML 中重叠。现在,这是我的布局示例:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/actionbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
现在一切都按预期工作。希望这可以帮助遇到同样问题的其他人!
关于android - 无法让AppCompat ActionBar/Toolbar成为覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115455/