当图像右对齐时,在小部件之间添加额外空间

时间:2015-08-21 06:43:51

标签: android android-layout

我正在尝试以下布局,因为我想将图像向右移动,但因为线性布局是垂直方向的,所以在textview和图像之间添加了额外的空格。 我不想使用相对布局,因为我正在编辑别人的代码而且它只是代码的一部分。

<LinearLayout
    android:id="@+id/llSpouse"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="10dp"
            android:background="@android:color/darker_gray" />

            <TextView
                android:id="@+id/tv_spouse"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="5dp"
                android:text="SPOUSE"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold" />



            <com.ypomumbai.utills.CircularNetworkImageView
                android:id="@+id/iv_picture"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:layout_gravity="right"
                android:layout_alignParentRight="true"
                android:src="@android:drawable/ic_menu_info_details" />

            <TextView
                android:id="@+id/tvSpouseFirstName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:text="First Name"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/tvSpouseLastName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_name"
                android:layout_marginLeft="10dp"
                android:text="Last Name" />

            <TextView
                android:id="@+id/tvSpousedesignation"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_last_name"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:text="MD and CEO" />

            <TextView
                android:id="@+id/tvSpouseCompnayName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_designation"
                android:layout_marginLeft="10dp"
                android:text="Text" />

          </View>
    </LinearLayout>

任何人都可以帮忙解决这个问题。 如何在不增加空间的情况下将图像向右移动。

2 个答案:

答案 0 :(得分:0)

如果您根本不想使用RelativeLayout,我真的不明白,但我发布的代码示例应该使用相对布局而不会打破其余部分:

     <LinearLayout
        android:id="@+id/llSpouse"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="10dp"
            android:background="@android:color/darker_gray"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

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

                <TextView
                    android:id="@+id/tv_spouse"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="5dp"
                    android:text="SPOUSE"
                    android:textColor="@android:color/black"
                    android:textSize="16sp"
                    android:textStyle="bold"/>


                <TextView
                    android:id="@+id/tvSpouseFirstName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:text="First Name"
                    android:textStyle="bold"/>

                <TextView
                    android:id="@+id/tvSpouseLastName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tv_name"
                    android:layout_marginLeft="10dp"
                    android:text="Last Name"/>

                <TextView
                    android:id="@+id/tvSpousedesignation"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tv_last_name"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:text="MD and CEO"/>

                <TextView
                    android:id="@+id/tvSpouseCompnayName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tv_designation"
                    android:layout_marginLeft="10dp"
                    android:text="Text"/>


            </LinearLayout>

            <ImageView
                android:id="@+id/iv_picture"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:layout_alignParentRight="true"
                android:layout_gravity="right"
                android:src="@android:drawable/ic_menu_info_details"/>
        </RelativeLayout>


    </LinearLayout>

呈现以下内容:

enter image description here

修改

您可以在不使用RelativeLayout的情况下使用以下xml进行相同的渲染:

    <LinearLayout
        android:id="@+id/llSpouse"
        xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="10dp"
            android:background="@android:color/darker_gray"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="4"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tv_spouse"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="5dp"
                    android:text="SPOUSE"
                    android:textColor="@android:color/black"
                    android:textSize="16sp"
                    android:textStyle="bold"/>


                <TextView
                    android:id="@+id/tvSpouseFirstName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:text="First Name"
                    android:textStyle="bold"/>

                <TextView
                    android:id="@+id/tvSpouseLastName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Last Name"/>

                <TextView
                    android:id="@+id/tvSpousedesignation"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:text="MD and CEO"/>

                <TextView
                    android:id="@+id/tvSpouseCompnayName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Text"/>


            </LinearLayout>

            <ImageView
                android:id="@+id/iv_picture"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:layout_gravity="right"
                android:src="@android:drawable/ic_menu_info_details"/>
        </LinearLayout>


    </LinearLayout>

答案 1 :(得分:0)

在垂直线性布局中,每个视图将占用总行空间。因此,使用该视图的高度将margin margin属性添加到com.ypomumbai.utills.CircularNetworkImageView。(负边距将删除此视图占用的空间)

<com.ypomumbai.utills.CircularNetworkImageView
    android:id="@+id/iv_picture"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_alignParentRight="true"
    android:layout_gravity="right"
    android:layout_marginBottom="-80dp"
    android:src="@android:drawable/ic_menu_info_details" />