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

时间:2015-02-18 11:40:17

标签: android android-actionbar

我通过对自定义视图进行充气来自定义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运行时会出现不需要的左边填充!如下图所示:

http://8pic.ir/images/ar3ykgqke9an68kj6hoc.png

有谁知道吗?

2 个答案:

答案 0 :(得分:1)

似乎当您在自定义操作栏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>

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

答案 1 :(得分:0)

你应该试试这个

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