2014-11-24 52 views
4

所以,我有一个工具栏,我设置为我的supportActionBar,我想要在覆盖模式。在这一点上,我觉得我已经尝试了一切,但似乎没有任何工作。无法让AppCompat的ActionBar /工具栏成为覆盖

这里的风格我目前有:

<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"/> 

最后,这里的地方,我将它设置在活动:

actionbar = (Toolbar) findViewById(R.id.actionbar);; 
setSupportActionBar(actionbar); 

我也试过打电话getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY)没有运气。

回答

5

所以,事实证明,这个问题同时非常简单,但至少对我而言并不明显。基本上问题是,虽然工具栏被设置为操作栏,但它仍然在一天结束时用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> 

所有按预期工作。希望这可以帮助别人,如果他们有同样的问题!

+5

android SDK应该自动提供这个。此外,没有标准方法使用在android lollypop中显示为标准设计的展开/折叠工具栏。恶梦是一个Android开发者。 – rDroid 2014-12-30 06:18:54

+0

正确的'RelativeLayout'代码应该是'android.support.v7.widget.Toolbar' AFTER'FrameLayout'吧?这样''工具栏'就会覆盖'FrameLayout'。 – shkschneider 2015-02-19 14:15:24

+0

我认为上面的代码可能不会显示工具栏,因为框架可能会隐藏它。您可能想要更改框架布局和工具栏的顺序 – 2015-04-12 18:23:12