2011-03-17 24 views
17

Android'de ilk düzeni başka bir düzeni şişirmek için bir yol arıyorum. Bunu nasıl yapardı? İşte iki XML dosyası. Birincisi ana düzen, ikincisi ise ilk olarak şişirmek istediğim düzen.Görünümü/düzeni başka bir düzende şişirir misiniz?

Bu düzeni, diğer düzenleri daha sonra tel çerçevelere şişirmek için kullanacağım gibi yerleştiremiyorum.

Kod ayrıca: http://pastebin.com/wjZ4s1cs olarak stackoverflow XML gibi değildir.

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ff000000" 
    > 
    <TextView 
     android:id="@+id/headerMenuText" 
     android:text="@string/main_menu_title" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:textSize="16pt" 
     android:paddingTop="10px" 
     android:paddingBottom="10px" 
     android:gravity="center" 
    > 
    </TextView> 
    <TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_y="100dip" 
     android:gravity="center" 
     android:layout_gravity="center" 
    > 
     <TableRow 
      android:gravity="center" 
      android:layout_gravity="center"> 
      <ImageView 
       android:id="@+id/menuItem1" 
       android:layout_height="101dip" 
       android:layout_width="89dip" 
       android:src="@drawable/icon_settings" 
      ></ImageView> 

      <ImageView 
       android:id="@+id/menuItem2" 
       android:layout_height="101dip" 
       android:layout_width="89dip" 
       android:src="@drawable/icon_system_restart" 
      ></ImageView> 

      <ImageView 
       android:id="@+id/menuItem3" 
       android:layout_height="101dip" 
       android:layout_width="89dip" 
       android:src="@drawable/icon_game_history" 
      ></ImageView> 

      <ImageView 
       android:id="@+id/menuItem4" 
       android:layout_height="101dip" 
       android:layout_width="89dip" 
       android:src="@drawable/icon_game_correction" 
      ></ImageView> 

      <ImageView 
       android:id="@+id/menuItem5" 
       android:layout_height="101dip" 
       android:layout_width="89dip" 
       android:src="@drawable/icon_game_other" 
      ></ImageView> 
     </TableRow> 

     <TableRow android:gravity="center"> 
      <TextView 
       android:id="@+id/menuItemText1" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/main_menu_item_text_1" 
       android:layout_gravity="center" 
       android:gravity="center" 
      ></TextView> 

      <TextView 
       android:id="@+id/menuItemText2" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/main_menu_item_text_2" 
       android:layout_gravity="center" 
       android:gravity="center" 
      ></TextView> 

      <TextView 
       android:id="@+id/menuItemText3" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/main_menu_item_text_3" 
       android:layout_gravity="center" 
       android:gravity="center" 
      ></TextView> 

      <TextView 
       android:id="@+id/menuItemText4" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/main_menu_item_text_4" 
       android:layout_gravity="center" 
       android:gravity="center" 
      ></TextView> 

      <TextView 
       android:id="@+id/menuItemText5" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/main_menu_item_text_5" 
       android:layout_gravity="center" 
       android:gravity="center" 
      ></TextView> 

     </TableRow> 
    </TableLayout> 
    <View or layout 
     android:id="@+id/screen_layout_bottom_menu" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
    > 
    </View or layout> 
</AbsoluteLayout> 

İkinci düzen

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/screen_bottom_menu" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    > 
    <TableLayout 
     android:id="@+id/screen_bottom_menu_table" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
    > 
     <TableRow> 
      <ImageView 
       android:id="@+id/screen_bottom_menu_button_back" 
       android:src="@drawable/back"> 
      </ImageView> 

      <ImageView 
       android:id="@+id/screen_bottom_menu_button_ok" 
       android:src="@drawable/checkmark"> 
      </ImageView> 

      <ImageView 
       android:id="@+id/screen_bottom_menu_button_cancel" 
       android:src="@drawable/xmark"> 
      </ImageView> 

      <ImageView 
       android:id="@+id/screen_bottom_menu_button_key_toggle" 
       android:src="@drawable/lock"> 
      </ImageView> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 
+2

Kod biçimlendirme: Eğer 1 pozisyonunda, diyelim ki, bunu eklemek için isterseniz, ebeveyn (kullanım false geçen arg) taktıktan ve elle endeksi belirterek eklemeden düzenini açıldığı olabilir vurguyu kod satırına basın ve '{}' düğmesine basın, her satırın başına 4 boşluk eklenir -> biçimlendirilmiş kod. – bigstones

+0

AbsoluteLayout, farklı boyutlardaki ekranları desteklemediği için kullanımdan kaldırılmıştır. Bunun yerine LinearLayout veya RelativeLayout'u kullanın. –

cevap

32

ViewStub var, ancak hiç kullanmadım ve sanırım bir kereden fazla kullanılamaz.

menü düzenini şişirmek ve ana düzene onu ekleyebilirsiniz:

AbsoluteLayout mainLayout = (AbsoluteLayout) findViewById(R.id.your_main_layout); 
LayoutInflater inflater = 
       (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true); 

sonra değiştirmek istediğiniz zaman kaldırabilirsiniz:

mainLayout.removeView(menuLayout); 

ve başka aynı şekilde ekleyin.

Düzen, üst düzeni üst düzeninin son alt öğesi olarak eklemek istediğiniz için işe yarar.

mainLayout.addView(menuLayout, 0); 
+2

Depolu. ne var ne yok ? –

+0

@ jeet.chanchawat ViewStub kullanımdan kaldırılmamış gibi görünüyor mu? –

+1

'AbsoluteLayout' depoluyor –

6

ben gerçekten ben tel içine diğer düzenleri şişirmek için bu yöntemi kullanır gibi sadece düzeni içeremez" tarafından ment vardı anladım emin değilim daha sonra kareler. Ancak, diğer mizanpajlarda birçok kez yerleştirilmek üzere ikinci mizanpaja ihtiyacınız varsa, bu paftalarda <include layout="@layout/the_second_layout" /> kullanın.

+0

Ekleme etiketinin farkındayım, ancak bir yer tutucuya dayalı olarak düzenleri dinamik olarak değiştirmek istedim. –

İlgili konular