我决定动态创建我的布局,因为我感觉更能控制它们,因为我可以在代码中做任何事情而不是布局,膨胀等等。我来自先开发Symbian,然后是黑莓和即使有一个拖放式布局创建界面相当酷,我觉得更多的在家里。虽然我仍然会使用一些D& 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 :(得分:0)
您应该将TableRow添加到TableLayout,而不是将其添加到LinearLayout。
disenio = new TableLayout(sisLec);