2014-10-11 51 views
6

我有一个片段的活动。从这个片段我调用方法来显示上下文操作栏,这是我的问题。透明状态栏包含Kitkat上的动作模式

样式:

<style name="MyThemeLight" parent="@android:style/Theme.Holo.Light.NoActionBar"> 
    <item name="android:actionModeCloseButtonStyle">@style/MyCloseButton</item> 
    <item name="android:actionModeStyle">@style/ContextualBar.Light</item> 
    <item name="android:actionOverflowButtonStyle">@style/OverFlow</item> 
    <item name="android:actionBarStyle">@style/MyMainActionBar</item> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:actionModeCloseDrawable">@drawable/close_white</item> 
    <item name="android:windowActionModeOverlay">true</item> 
    <item name="android:windowBackground">@color/background</item> 
    <item name="android:dropDownListViewStyle">@style/PopupMenuLight</item> 
</style> 

<style name="MyMainActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@drawable/ab_bottom_solid_dark_holo</item> 
    <item name="android:height">1dp</item> </style> 


<style name="ContextualBar.Light" parent="android:style/Widget.Holo.ActionMode"> 
    <item name="android:background">@drawable/ab_bottom_solid_dark_holo</item> 
    <item name="android:height">56dp</item>  </style> 

<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow"> 
<item name="android:src">@drawable/menu_white</item> </style> 

<style name="MyCloseButton" parent="android:style/Widget.ActionButton.CloseMode"> 
    <item name="android:textColor">#000000</item> </style>  
</resources> 

布局:

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layoutright" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"> 

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layoutleft" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"> 
    <!-- The main content view --> 
    <android.support.v4.view.ViewPager 
    android:id="@+android:id/viewpager" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 
<!-- The navigation drawer --> 
<fragment 
    class="...BookmarksLeft" 
    android:id="@+id/drawer_listleft" 
    android:layout_width="306dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:tag="bookleft"/> 

</android.support.v4.widget.DrawerLayout> 

<fragment 
    class="...BookmarksRight" 
    android:layout_width="306dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="end" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:tag="bookright"/> 
</android.support.v4.widget.DrawerLayout> 

</FrameLayout> 

正如你所看到的,主要风格有没有动作栏,状态栏是透明的, “机器人:windowActionModeOverlay” 是真的和“android:fitsSystemWindows”是对的,但我得到:

enter image description here

有什么方法可以将CAB向下移动?

+0

您是否找到了答案?我遇到了同样的问题... – tchap 2015-11-16 19:46:25

回答

0

只需更改paddingTop和高度。 然后在AppTheme中添加您的actionMode风格。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="actionModeStyle">@style/CustomActionMode</item> 
</style> 

<style name="CustomActionMode" parent="@style/Widget.AppCompat.Light.ActionMode.Inverse"> 
    <item name="android:paddingTop">25dp</item> 
    <item name="height">80dp</item> 
    <item name="titleTextStyle">@style/Title</item>  
</style>