我正在使用自定义操作栏视图,如下面的屏幕截图所示,操作栏中有一个空白的灰色空间.我想删除它.

我做了什么:
RES /值-V11/styles.xml
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
        <item name="actionBarStyle">@style/ActionBarStyle</item>
</style>
RES /值/ my_custom_actionbar.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:height">60dp</item>
    </style>
</resources>
表现
<uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="19" />
<application
            android:icon="@drawable/ic_launcher"
            android:label="@string/AppName"
            android:theme="@style/AppBaseTheme" >
    <!-- activities... etc -->
</application>
主要活动
public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDefaultDisplayHomeAsUpEnabled(false);
    actionbar.setDisplayHomeAsUpEnabled(false);
    actionbar.setDisplayShowCustomEnabled(true);
    actionbar.setDisplayShowHomeEnabled(false);
    actionbar.setDisplayShowTitleEnabled(false);
    actionbar.setDisplayUseLogoEnabled(false);
    actionbar.setHomeButtonEnabled(false);
    // Add the custom layout
    View view = LayoutInflater.from(this).inflate(R.layout.actionbar, null, false);
    actionbar.setCustomView(view);
}
我发现了一篇最近的帖子,指出最新版本存在问题.我还将ADT和SDK更新到Android 5.
我不知道该怎么办.
编辑(部分解决方案):
不适用于Android <= API 10. …
我想删除标准android 4.0+操作栏左侧图标周围的填充.我正在设置图标:
getActionBar().setIcon(getResources().getDrawable(R.drawable.ic_action_myapp));
我希望图标垂直填充空间,触摸顶部和底部,类似于soundcloud应用程序的作用:

类似于这里的问题,但有一些关键的区别.最值得注意的是,在最新的支持库发布之前,已接受的答案确实有效.
这是自定义视图布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#FFDD0000">
</LinearLayout>
现在,当您尝试仅设置自定义视图时:
  ActionBar actionBar = getSupportActionBar();
  actionBar.setDisplayShowCustomEnabled(true);
  actionBar.setCustomView(R.layout.actionbar);
您最终得到的自定义布局不会填满整个宽度:

为了使这个更感兴趣,我在不同的应用程序中有类似的设置:
  ActionBar actionBar = getSupportActionBar();
  actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
  actionBar.setCustomView(R.layout.actionbar);
  actionBar.setDisplayHomeAsUpEnabled(false);
  actionBar.setHomeButtonEnabled(false);
这确实有效,直到我将支持库更新到v21.一旦我做了,我最终在以前没有遇到过这个问题的应用程序上遇到了同样的问题.
所以,我的问题是,有没有办法使用最新的支持库使自定义视图操作栏填充宽度?
编辑在做了一些更多的测试之后,我发现用targetSdkVersion/compileSdkVersion设置为19进行编译并且为库提供v7:19.0.1(或v7:19.1.0)没有这个问题(有主页图标,这是用后面的代码处理),确认这绝对是最新版本的问题.
android android-support-library android-actionbar-compat android-5.0-lollipop
这是我的自定义操作栏的图像:

我想使用整个宽度,我已经在互联网上寻找解决方案但我没有任何帮助.
这是我的动作栏.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarSave"
        android:src="@drawable/ic_ok_b"
        android:nestedScrollingEnabled="true"
        android:layout_alignParentRight="true"
        android:background="#ffb0afaf"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp" />
    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarDelete"
        android:src="@drawable/ic_trash"
        android:nestedScrollingEnabled="true"
        android:layout_toLeftOf="@+id/invActionBarSave"
        android:layout_marginRight="5dp"
        android:background="#ffb0afaf"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:singleLine="true"
        android:text="?????? ???? ??? ????"
        android:textSize="18dp"
        android:textColor="#ff000000"
        android:id="@+id/invActionBarTitle"
        android:gravity="center|right"
        android:layout_toLeftOf="@+id/invActionBarDelete"
        android:layout_toRightOf="@+id/invActionBarHome"
        android:layout_marginRight="20dp"
        android:layout_marginLeft="10dp" />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarHome"
        android:src="@drawable/ic_back_b"
        android:nestedScrollingEnabled="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="false"
        android:paddingLeft="10dp" />
    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:indeterminateOnly="false"
        style="@style/ProgressBar.Horizontal"
        android:indeterminate="true"
        android:id="@+id/invActionBarProgressBar"
        android:visibility="gone"
        android:layout_below="@+id/invActionBarDelete"
        android:paddingLeft="10dp" />
</RelativeLayout>这是我的java代码:
getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    LayoutInflater …尝试为我的操作栏设置自定义视图,但问题是它没有填满操作栏的整个宽度,这使得我可以使对象居中.如何在我的操作栏中设置自定义视图以填满整个操作栏?
设置我的操作栏的代码:
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
actionBar.setCustomView(inflater.inflate(R.layout.actionbar_layout, null));
还有我的actionbar_layout.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="wrap_content"
    android:layout_gravity="center"
    android:background="#EDEDED">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="#FFFFFF"
    android:text="Testing"/>
</RelativeLayout>
我昨天通过选择API19开发自定义ActionBar我更新了支持库和项目到API21,导致我遇到问题.在我的操作栏中有一个菜单到箭头按钮,我不需要和动作栏样式的更改.
更新前:

更新后:

以下是style.xml
<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    </style>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>
        <item name="actionBarItemBackground">@drawable/selectable_background_apptheme</item>
        <item name="popupMenuStyle">@style/PopupMenu.Apptheme</item>
        <item name="dropDownListViewStyle">@style/DropDownListView.Apptheme</item>
        <item name="actionBarTabStyle">@style/ActionBarTabStyle.Apptheme</item>
        <item name="actionDropDownStyle">@style/DropDownNav.Apptheme</item>
        <item name="actionBarStyle">@style/ActionBar.Solid.Apptheme</item>
        <item name="actionModeBackground">@drawable/cab_background_top_apptheme</item>
        <item name="actionModeSplitBackground">@drawable/cab_background_bottom_apptheme</item>
        <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Apptheme</item>
        <!-- Light.DarkActionBar specific -->
        <item name="actionBarWidgetTheme">@style/Theme.Apptheme.Widget</item>
    </style>
    <!-- Base application theme for Full screen Activities -->
    <style name="AppThemeFullScreen" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>
    </style>
    <!-- Button Style -->
    <style name="ButtonAppTheme" parent="android:Widget.Button">
        <item name="android:background">@drawable/btn_background</item>
        <item name="android:minHeight">48dip</item>
        <item name="android:minWidth">64dip</item>
        <item name="android:textColor">@color/btn_text_color_default</item>
    </style>
    <style name="ActionBar.Solid.Apptheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@drawable/ab_solid_apptheme</item> …android android-actionbar-compat android-actionbaractivity android-5.0-lollipop
结果如下:http://i.stack.imgur.com/VgbZT.png.我希望它位于状态栏和全宽下方,就像这个:http://i.stack.imgur.com/FFQJN.png.
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity">
    <!--<android.support.v7.widget.Toolbar-->
        <!--android:id="@+id/toolbar"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_width="match_parent"-->
        <!--android:minHeight="?attr/actionBarSize"-->
        <!--android:background="?attr/colorPrimary" />-->
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:contentInsetEnd="0dp"
        app:contentInsetStart="0dp"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary" >
    </android.support.v7.widget.Toolbar>
</RelativeLayout>public class MyActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_card_list);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }我已经读过这个,但它仍然没有用.
我一直在拉我的头发反对这个左边的填充/边距只是不要消失问题,即将成为秃头......对此的解决方案将不胜感激!我已经尝试过 SO 的这些答案,它确实移动了一些填充,但不是全部。基本上所有的答案都说将 contentInsetStart 和 contentInsetLeft 设置为 0dp。这确实删除了左侧的一些填充,但我仍然看到一个填充,它只是比我将 contentInsetStart 和 contentInsetLeft 设置为 0dp 之前小。此解决方案适用于三星手机,但不适用于我测试过的任何平板电脑,例如 Nexus 7、Nexus 9、Dell Venus 8 等。

我相信很多人都有这个问题,这些是我尝试过的答案,但仍然在上面显示的左侧留下填充/边距。
Android Lollipop、AppCompat ActionBar 自定义视图不占用整个屏幕宽度
我的活动/操作栏左侧的填充/边距 - 不知道它来自哪里,无法删除它
如何在 ActionBar 上移除应用程序图标和屏幕边缘之间的边距?
样式
<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/AppThemeActionBar</item>
        <item name="logo">@android:color/transparent</item>
    </style>
    <style name="AppThemeActionBar" parent="@style/Widget.AppCompat.ActionBar">
        <item name="displayOptions">showCustom</item>
        <item name="background">@color/blue</item>
        <item name="actionBarSize">50dp</item>
        <item name="height">50dp</item>
        <item name="contentInsetLeft">0dp</item>
        <item name="contentInsetStart">0dp</item>
        <item name="contentInsetEnd">0dp</item>
        <item name="android:layout_marginLeft">0dp</item>
    </style>
</resources>
活动布局,activity_main.xml,它几乎是空的,只是主要活动类的虚拟布局,自定义操作栏视图位于另一个布局文件中。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
</LinearLayout> …