2016-04-04 24 views
1

Liste görünümü için bu düzen var, ve TextView sırasını, önce ve sonra LinearLayout programlı olarak değiştirmek istiyorum. İşteAndroid değiştirmek düzeni siparişleri

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

programlı tek başına yapmak mümkün mü,

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

, göründüğü gibi değil Ve ben bu düzeni değiştirmek istiyor?

+0

@ SelçukCihan Bu yazıyı göndermeden önce gördüm. Ancak, görünümü kaldırıp eklemekten başka bir çözüm yoksa, bunu yalnızca kopyalanmış olarak işaretlerim. –

cevap

1

Çok basit. Sadece iki tane boş LinearLayouts oluşturun ve View'a dinamik olarak ekleyin.

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

Şimdi basitçe, TextView'un almak Layout2 ve LAYOUT1 üzerinde addView (TextView'un) içinde removeAllViews diyoruz.

+0

Çözümünüz için teşekkürler. Ama ben kaldırmaya ve görünümü dizine göre lineer mizanpaja eklemeyi tercih ederim. –

İlgili konular