为什么我的自定义 Actionbar 上的图像有不需要的左填充

Why my image on my custom Actionbar has unwanted left padding

我通过扩充自定义视图来自定义 ActionBar。 我的自定义操作栏 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:layout_gravity="fill_horizontal"
    android:background="@drawable/actionbar_bg" >

    <TextView
        android:id="@+id/ab_main_text"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="16dp"
        android:gravity="right|center_vertical"
        android:text="heaer_text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#ffffff" />

    <ImageView
        android:id="@+id/ab_main_img0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:clickable="true"
        android:src="@drawable/ab_main_img_layer_list" />

</RelativeLayout>

但我不知道为什么我的 ImageView 在 运行 时有一个不需要的左填充!!!如下图:

有人知道吗?

似乎当您在自定义操作栏 xml 布局的 ImageView(而非 TextView)中使用 "wrap_content" 或 "match_parent" 时,您的操作栏中会有填充,否则你没有。

所以请尝试如下更改 xml:为 ImageView 设置固定大小(您还可以添加一些 margin_left 以获得更好的外观)。

<?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:layout_gravity="fill_horizontal"
    android:background="@drawable/actionbar_bg" >

    <TextView
        android:id="@+id/ab_main_text"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="16dp"
        android:gravity="right|center_vertical"
        android:text="heaer_text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#ffffff" />

    <ImageView
        android:id="@+id/ab_main_img0"
       android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        android:clickable="true"
        android:src="@drawable/ab_main_img_layer_list" />

</RelativeLayout>

编辑:刚刚编辑了我的答案,以便更准确地解释问题 :)。希望对其他人也有帮助。

你应该试试这个

android:layout_marginLeft="5dp"

ImageView 内部

<ImageView
    android:id="@+id/ab_main_img0"
    android:layout_width="50px"
    android:layout_height="50px"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:clickable="true"
    android:layout_marginLeft="5dp"
    android:src="@drawable/ab_main_img_layer_list" />