2011-11-17 79 views
0

我決定動態創建我的佈局,因爲我覺得更多的控制它們,因爲我可以用代碼做任何事情而不是佈局,膨脹等等。我來自開發的第一個與Symbian,然後黑莓,即使有一個拖放式佈局創建界面是相當酷,我覺得更多的在家裏與此。儘管我仍然會使用一些D佈局。按鈕沒有顯示在桌子上

事情是,我有這個佈局與微調和一些按鈕,我希望他們在行風格,所以很顯然我把他們放在一個錶行。下面的代碼:

public FormaLibrosDisponibles(SisLec _sisLec) 
    { 
     super(_sisLec); 
     sisLec = _sisLec; 
     disenio = new LinearLayout(sisLec); 
     disenio.setOrientation(LinearLayout.VERTICAL); 
     addView(disenio); 
     selecClk = new OnClickListener() 
     {   
      public void onClick(View v) 
      {   
       seleccionarBtnClick(v); 
      } 
     }; 
     cancelarClk = new OnClickListener() 
     {   
      public void onClick(View v) 
      { 
       cancelarBtnClick(v); 
      } 
     };  
     selecBtn = new Button(sisLec); 
     selecBtn.setText("Descargar Libro"); 
     selecBtn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     selecBtn.setOnClickListener(selecClk); 
     cancelarBtn = new Button(sisLec); 
     cancelarBtn.setText("Cancelar"); 
     cancelarBtn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     cancelarBtn.setOnClickListener(cancelarClk); 
     lineaTabla = new TableRow(sisLec); 
     lineaTabla.addView(selecBtn); 
     lineaTabla.addView(cancelarBtn); 
     lineaTabla.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     librosDisponibles = new Spinner(sisLec); 
     disponiblestxtVw = new TextView(sisLec); 
     disponiblestxtVw.setText("Libros Disponibles"); 
     disenio.addView(disponiblestxtVw); 
     disenio.addView(librosDisponibles); 
     disenio.addView(lineaTabla); 
    } 

但是,當它觸發了,沒有顯示按鈕。如果我拿出任何一個按鈕的佈局參數,可以讓說,我這樣做:

selecBtn = new Button(sisLec); 
      selecBtn.setText("Descargar Libro"); 
      //selecBtn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      selecBtn.setOnClickListener(selecClk); 
      cancelarBtn = new Button(sisLec); 
      cancelarBtn.setText("Cancelar"); 
      cancelarBtn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      cancelarBtn.setOnClickListener(cancelarClk); 

...那麼只有cancelarBtn將被顯示,並會採取所有的空間。

我在這裏做錯了什麼?

回答

0

您應該將您的TableRow添加到TableLayout,而不是將其添加到LinearLayout。

disenio = new TableLayout(sisLec); 
+0

的是,我在簽出其他的佈局我有,通過tablerow,這是一個簡單的LinearLayout,但是,是的,我會嘗試你的建議 – CJLopez

+0

沒有奏效。從線性更改爲表,仍然不會出現按鈕 – CJLopez