Android 4.4 Kitkat自定义视图操作栏未填满整个宽度

我想要一个自定义视图的简单操作栏,但我得到以下结果:

为了演示,我创build了一个带有黄色背景色的简单xml,应该占据整个宽度。

这里是xml:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/yellow" android:orientation="vertical" > <TextView android:visibility="gone" android:id="@+id/action_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/action_save" android:gravity="center" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:textStyle="bold" android:layout_marginLeft="10dp" android:textColor="@android:color/white" android:text="@string/save" /> <ImageView android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/ic_actionbar_logo" /> </RelativeLayout> 

我为我的应用程序使用以下主题:

 <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"></style> 

动作条

这是操作栏初始化代码:

  actionBar = getSupportActionBar(); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(R.layout.actionbar); 

Solutions Collecting From Web of "Android 4.4 Kitkat自定义视图操作栏未填满整个宽度"

解决scheme是增加:

 actionBar.setDisplayShowTitleEnabled(false); 

代码应该看起来像这样:

 actionBar = getSupportActionBar(); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowTitleEnabled(false); actionBar.setCustomView(R.layout.actionbar);//set the custom view 

@NemesisDoom:请确保你使用ActionBar从support.v7库,而不是从Android API(这第二个不能工作肯定)。 如果仍然不起作用,请添加更多的更改:

styles.xml(您的操作栏样式部分):

  <item name="android:homeAsUpIndicator">@drawable/_pixel</item> <item name="homeAsUpIndicator">@drawable/_pixel</item> 

_pixel是1×1.png图片,透明。

你的活动:

 actionBar.setDisplayHomeAsUpEnabled(true);