Android更改布局顺序

Android更改布局顺序,android,Android,我的listview有这个布局,我想以编程方式将TextView的顺序更改为LinearLayout之前和之后。这是它的样子 <LinearLayout android:id="@+id/content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:orien

我的listview有这个布局,我想以编程方式将
TextView
的顺序更改为
LinearLayout
之前和之后。这是它的样子

<LinearLayout
    android:id="@+id/content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/contentWithBackground"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/out_message_bg"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tvMessage"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="@android:color/black"
            android:text="TEST TEST"
            android:padding="@dimen/default_layout_padding"
            android:maxWidth="260dp" />

    </LinearLayout>

    <TextView
        android:id="@+id/tvInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:textSize="12sp"
        android:text="23:21"
        android:textColor="@android:color/darker_gray" />

</LinearLayout>

我想把这个布局改成

<LinearLayout
    android:id="@+id/content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tvInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:textSize="12sp"
        android:text="23:21"
        android:textColor="@android:color/darker_gray" />

    <LinearLayout
        android:id="@+id/contentWithBackground"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/out_message_bg"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tvMessage"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="@android:color/black"
            android:text="TEST TEST"
            android:padding="@dimen/default_layout_padding"
            android:maxWidth="260dp" />

    </LinearLayout>

</LinearLayout>


是否可以单独以编程方式执行此操作?

非常简单。只需创建两个空的LinearLayout,并将视图动态添加到其中

<LinearLayout
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="horizontal">

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

<LinearLayout
    android:id="@+id/contentWithBackground"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/out_message_bg"
    android:orientation="vertical">

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

    <TextView
        android:id="@+id/tvMessage"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:textColor="@android:color/black"
        android:text="TEST TEST"
        android:padding="@dimen/default_layout_padding"
        android:maxWidth="260dp" />
    </LinearLayout>
</LinearLayout>

<TextView
    android:id="@+id/tvInfo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:textSize="12sp"
    android:text="23:21"
    android:textColor="@android:color/darker_gray" />

</LinearLayout>


现在只需获取文本视图,在layout2中调用removeAllViews,在layout1中调用addView(文本视图)。

@SelçukCihan我在这里发布之前看到了这篇文章。但是,如果除了删除和添加视图之外没有其他解决方案,我会将其标记为重复。谢谢您的解决方案。但我更愿意删除视图并将其按索引添加回线性布局。