桌面上没有显示按钮

时间:2011-11-17 22:43:35

标签: android button tablerow

我决定动态创建我的布局,因为我感觉更能控制它们,因为我可以在代码中做任何事情而不是布局,膨胀等等。我来自先开发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,并占用所有空间。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

disenio = new TableLayout(sisLec);