2015-03-31 37 views
0

我需要動態創建的LinearLayout代表這個XML代碼:這個動態佈局有什麼問題? [Android]產品

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#ddd" 
    android:orientation="vertical" 
    android:padding="1dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#fff" 
     android:orientation="horizontal" 
     android:paddingBottom="26dp" 
     android:paddingTop="26dp" > 

     <LinearLayout 
      android:layout_width="160dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#fff" > 

      <ImageView 
       android:id="@+id/ImageView04" 
       android:layout_width="48dp" 
       android:layout_height="48dp" 
       android:layout_gravity="top" 
       android:layout_marginLeft="32dp" 
       android:layout_marginTop="4dp" 
       android:background="#eee" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#fff" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="top" 
       android:gravity="top" 
       android:paddingBottom="4dp" 
       android:paddingLeft="16dp" 
       android:text="Name of event" 
       android:textSize="22sp" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:paddingLeft="16dp" 
       android:text="Group of this event" 
       android:textColor="#aaa" 
       android:textSize="16sp" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

但問題是,我寫了一些代碼,但我不知道爲什麼調試我的申請,我唯一看到的後事件的名稱。

下面的代碼:

public class Event extends LinearLayout{ 

    private LinearLayout globalContener; 
    private LinearLayout contener; 
    private LinearLayout avatarBox; 
    private LinearLayout contentBox; 

    private TextView eventName; 
    private TextView eventGroup; 

    private ImageView avatar; 

    private LinearLayout.LayoutParams globalContenerParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    private LinearLayout.LayoutParams contenerParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    private LinearLayout.LayoutParams avatarBoxParams = new LinearLayout.LayoutParams(160, LayoutParams.MATCH_PARENT, 1.0f); 
    private LinearLayout.LayoutParams contentBoxParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 

    private LinearLayout.LayoutParams eventNameParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    private LinearLayout.LayoutParams eventGroupParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    private LinearLayout.LayoutParams avatarParams = new LinearLayout.LayoutParams(48, 48); 

    public Event(Context context){ 
     super(context); 

     // Design of global contener 
     globalContenerParams.setMargins(0, 0, 0, 32); 

     globalContener = new LinearLayout(context); 
     globalContener.setBackgroundColor(0xDDDDDD); 
     globalContener.setPadding(1, 1, 1, 1); 
     globalContener.setOrientation(LinearLayout.VERTICAL); 
     globalContener.setLayoutParams(globalContenerParams); 

     // Design of contener 
     contener = new LinearLayout(context); 
     contener.setBackgroundColor(0xFFFFFF); 
     contener.setPadding(0, 26, 0, 26); 
     contener.setOrientation(LinearLayout.HORIZONTAL); 
     contener.setLayoutParams(contenerParams); 

     // Design of avatar box 
     avatarBox = new LinearLayout(context); 
     avatarBox.setBackgroundColor(0xFFFFFF); 
     avatarBox.setLayoutParams(avatarBoxParams); 

     // Design of contet box 
     contentBox = new LinearLayout(context); 
     contentBox.setOrientation(LinearLayout.VERTICAL); 
     contentBox.setBackgroundColor(0xFFFFFF); 
     contentBox.setLayoutParams(contentBoxParams); 

     // Design of avatar 
     avatarParams.gravity = Gravity.TOP; 
     avatarParams.setMargins(32, 4, 0, 0); 

     avatar = new ImageView(context); 
     avatar.setBackgroundDrawable(Const.avatarImg); 
     avatar.setLayoutParams(avatarParams); 

     // Design of event name 
     eventNameParams.gravity = Gravity.TOP; 

     eventName = new TextView(context); 
     eventName.setGravity(Gravity.TOP); 
     eventName.setPadding(16, 0, 0, 4); 
     eventName.setTextSize(22); 
     eventName.setText("Sprawdzian z języka polskiego"); 
     eventName.setLayoutParams(eventNameParams); 

     // Design of event group 
     eventGroup = new TextView(context); 
     eventGroup.setGravity(Gravity.CENTER); 
     eventGroup.setPadding(16, 0, 0, 0); 
     eventGroup.setTextSize(16); 
     eventGroup.setTextColor(0xAAAAAA); 
     eventGroup.setText("4ia Technikum Łączności w Krakowie"); 
     eventGroup.setLayoutParams(eventGroupParams); 

     // Packing boxes 
     avatarBox.addView(avatar); 

     contentBox.addView(eventGroup); 
     contentBox.addView(eventName); 

     contener.addView(avatarBox); 
     contener.addView(contentBox); 

     globalContener.addView(contener); 

     // Adding to view 
     addView(globalContener); 
    } 
} 

是有人在這裏誰可以幫我嗎?

+0

只要使用[這](http://www.xmltojava.com/) – 2015-03-31 22:28:53

+0

你爲什麼要在代碼中動態創建它,而不是使用佈局文件中的任何特別的原因,你已經有? – Squonk 2015-03-31 22:32:35

+0

我需要有n個這樣的事件框,因爲我現在不需要用戶有多少事件。 – 2015-03-31 22:40:34

回答

0

設置您的主要方向的LinearLayout立式 然後
集contentBoxParams重量至1f

private LinearLayout.LayoutParams contentBoxParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,1.0f); 

然後 把這個

contentBox.addView(eventName); 

在此之前

contentBox.addView(eventGroup); 

,然後替換所有 0xFFFFFF0xFFFFFFFF

+0

可惜的是,它的垂直:( 這是當我創建這個使用XML結果: http://oi59.tinypic.com/az054.jpg 這裏時,它的動態: HTTP:// oi58 .tinypic.com/2uo16i1.jpg – 2015-03-31 22:36:46

+0

將contentBoxParams權重設置爲1f – 2015-03-31 22:45:00

+0

私有LinearLayout.LayoutParams contentBoxParams =新LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT,1.0f); – 2015-03-31 22:45:27