Android - 通过xml在LinearLayout中交换视图

时间:2016-08-03 16:27:28

标签: android xml android-layout

这是我的xml代码,它有一个ImageView,它位于LinearLayout id =“linearLayout2”之前:

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

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout1"
        android:background="@drawable/border"
        android:paddingBottom="5dp">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView"
            android:src="@drawable/ic_swap"
            android:layout_gravity="center_vertical" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout2"
            android:paddingBottom="5dp"
            android:layout_marginRight="5dp">

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/fromStationField"
                android:completionThreshold="1"
                android:hint="From"
                android:textAlignment="textStart"
                android:gravity="left|start"
                android:layout_gravity="left" />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/toStationField"
                android:completionThreshold="1"
                android:hint="To"
                android:background="@android:color/transparent"
                android:paddingRight="4dp"
                android:paddingLeft="4dp" />

        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

我想要做的是让一个ImageView站在LinearLayout id =“linearLayout2”之后,就像我在下面的图像中所示。

如何仅使用xml执行此操作?

enter image description here

2 个答案:

答案 0 :(得分:1)

可以在linearLayout1中使用一个解决方案来在linearLayout2之后移动ImageView。然后将linearLayout1的width设置为match_parent,将兄弟视图的width设置为0dp。最后,使用layout_weight来实现ImageView和LinearLayout2所需的大小比例。

df[,vec]

答案 1 :(得分:0)

在下面的布局中,我使用map中的负边距和ImageView左侧LinearLayout容器中的正边距,这样我们就不会需要使用ImageView属性,并且可以继续使用layout_weight。为此,您需要修正match_parent的大小。检查此代码:

ImageView