按钮没有显示在桌子上

问题描述:

我决定动态创建我的布局,因为我觉得更多的控制它们,因为我可以用代码做任何事情而不是布局,膨胀等等。我来自开发的第一个与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将被显示,并会采取所有的空间。

我在这里做错了什么?

您应该将您的TableRow添加到TableLayout,而不是将其添加到LinearLayout。

disenio = new TableLayout(sisLec); 
+0

的是,我在签出其他的布局我有,通过tablerow,这是一个简单的LinearLayout,但是,是的,我会尝试你的建议 – CJLopez

+0

没有奏效。从线性更改为表,仍然不会出现按钮 – CJLopez