Xml 自定义布局在左侧有空间

Xml 自定义布局在左侧有空间,xml,android-layout,android-actionbar,Xml,Android Layout,Android Actionbar,问题是,我有一个返回箭头和一个带有个人资料图像的ImageView,正如WhatsApp在其聊天版面中所做的那样。 我想把这个背向箭头放在动作条的最左边,图片应该是背向箭头。就像whatsapp一样 我的xml代码附在这里 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:

问题是,我有一个返回箭头和一个带有个人资料图像的ImageView,正如WhatsApp在其聊天版面中所做的那样。 我想把这个背向箭头放在动作条的最左边,图片应该是背向箭头。就像whatsapp一样

我的xml代码附在这里

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true">

    <ImageView
        android:id="@+id/navigation_back_post_comment"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_alignBottom="@+id/post_author_layout_inflate"
        android:layout_alignTop="@+id/post_author_layout_inflate"
        android:layout_gravity="left|center"
        android:gravity="center_vertical"
        android:scaleType="center"
        android:src="@drawable/ic_arrow_back_black_24dp" />

    <LinearLayout
        android:id="@+id/post_author_layout_inflate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/navigation_back_post_comment"
        android:layout_toRightOf="@+id/navigation_back_post_comment"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <android.support.v7.widget.CardView
            android:layout_width="40dp"
            android:layout_height="40dp"
            app:cardCornerRadius="20dp">

            <ImageView
                android:id="@+id/post_author_photo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/ic_action_account_circle_40" />
        </android.support.v7.widget.CardView>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/post_author"
                style="@style/Base.TextAppearance.AppCompat.Small"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical"
                android:textColor="@color/cardview_light_background"
                android:textStyle="bold"
                tools:text="someauthor" />

            <TextView
                android:id="@+id/post_email"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical"
                android:textColor="@color/cardview_light_background"
                android:textSize="@dimen/email_text_size"
                android:textStyle="bold"
                tools:text="someauthor@email.com" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/star_layout_inflate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/post_author_layout_inflate"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/post_author_layout_inflate"
        android:layout_marginRight="8dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/star_cmnt_inflate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:background="?attr/selectableItemBackground"
            android:src="@drawable/ic_create_white_24dp" />

        <TextView
            android:id="@+id/post_num_stars_cmnt_inflate"
            style="@style/Base.TextAppearance.AppCompat.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="@color/cardview_light_background"
            android:textStyle="bold"
            tools:text="7" />

    </LinearLayout>

</RelativeLayout>


尝试用以下代码替换后退按钮代码:

<ImageView
    android:id="@+id/navigation_back_post_comment"
    android:layout_width="wrap_content" 
    android:layout_height="35dp"
    android:layout_alignBottom="@+id/post_author_layout_inflate"
    android:layout_alignTop="@+id/post_author_layout_inflate"
    android:layout_gravity="left|center"
    android:gravity="center_vertical"
    android:scaleType="center"
    android:src="@drawable/ic_arrow_back_black_24dp" />

说明:


不应将布局宽度设置为固定宽度,而应将其设置为包裹内容。如果这仍然不能满足您的要求,您可以设置android:paddingLeft=“一些负值”和android:paddingRight=“一些负值”或android:paddingStart=“一些负值”和android:paddingEnd=“一些负值”(用于从右到左的支持)。尝试尝试不同的值以找到最佳配置。

尝试用以下代码替换后退按钮代码:

<ImageView
    android:id="@+id/navigation_back_post_comment"
    android:layout_width="wrap_content" 
    android:layout_height="35dp"
    android:layout_alignBottom="@+id/post_author_layout_inflate"
    android:layout_alignTop="@+id/post_author_layout_inflate"
    android:layout_gravity="left|center"
    android:gravity="center_vertical"
    android:scaleType="center"
    android:src="@drawable/ic_arrow_back_black_24dp" />

说明:


不应将布局宽度设置为固定宽度,而应将其设置为包裹内容。如果这仍然不能满足您的要求,您可以设置android:paddingLeft=“一些负值”和android:paddingRight=“一些负值”或android:paddingStart=“一些负值”和android:paddingEnd=“一些负值”(用于从右到左的支持)。尝试使用不同的值进行实验,以找到最佳配置。

负值可能会起作用,但这不是一种错误的方法,因为在android的其他设备上,它将不同@HarisGusic@UttamMeerwal如果将填充设置为dp值,则它将在不同的设备上相应地缩放。例如,如果您的图像是24dp,并且您设置了android:paddingLeft=“-8dp”,则在每个设备上都可以看到图像的16dp。另一种解决方案是裁剪源图像。我假设您使用的是google提供的原始back图标,因此它有一些左右填充。您可以尝试编辑图像以删除填充。但是请注意,您必须针对不同的密度编辑所有不同版本的图像。负值可能会起作用,但这不是一种错误的方式,因为在android的其他设备上,它将不同@HarisGusic@UttamMeerwal如果将填充设置为dp值,则它将在不同的设备上相应地缩放。例如,如果您的图像是24dp,并且您设置了android:paddingLeft=“-8dp”,则在每个设备上都可以看到图像的16dp。另一种解决方案是裁剪源图像。我假设您使用的是google提供的原始back图标,因此它有一些左右填充。您可以尝试编辑图像以删除填充。但是请注意,您必须针对不同的密度编辑图像的所有不同版本。