Кнопки не отображаются на столе - PullRequest
0 голосов
/ 18 ноября 2011

Я решил создать свой макет динамически, потому что я чувствую больше контроля над ним, так как я могу делать с кодом все что угодно, вместо того, чтобы иметь макет, раздувать и т. Д., И т. Д. Я пришел сначала к разработке с использованием Symbian, затем Blackberry иНесмотря на то, что интерфейс создания макета с помощью перетаскивания - это круто, я чувствую себя здесь как дома.Хотя я все еще буду использовать некоторые макеты 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 голосов
/ 18 ноября 2011

Вы должны добавить свой TableRow в TableLayout, вместо того, чтобы добавлять его в LinearLayout.

disenio = new TableLayout(sisLec);
...