2016-04-04 149 views
1

我對此列表視圖有此佈局,並且我想要以編程方式將TextView的順序更改爲LinearLayout之前和之後。這裏是什麼樣子,Android更改佈局訂單

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

是否有可能以編程方式獨自做到這一點?

+0

@SelçukCihan在發佈之前,我看到該帖子。但如果除了刪除和添加視圖之外沒有其他解決方案,我只會將其標記爲重複。 –

回答

1

非常簡單。只需創建兩個空的LinearLayouts並將View添加爲動態。

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

現在簡單地獲取您的TextView,調用layout2中的removeAllViews和layout1上的addView(textView)。

+0

感謝您的解決方案。但我寧願去除並通過索引將視圖添加到線性佈局。 –