неизвестная ошибка при использовании LayoutParams для Android - PullRequest
0 голосов
/ 06 декабря 2011

Я пытался убедиться, что 2 столбца создаваемых кнопок имеют одинаковую высоту, но без надежды.

Я пытался использовать LayoutParams, но при запуске дисплей стал пустым.Нет ошибки, но она ничего не отображает.

* обратите внимание, что текст кнопки by взят из базы данных, а текст обоих столбцов имеет разную длину

мой код:

ViewGroup.LayoutParams btnSize = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    btnSize.height = 50;
    btnSize.width = 50;

    //add table row per title
    for(i=0;i<aList.size();i++)
    {
        // ================== normal ================= //
        //create table row
        TableRow trN = new TableRow(this);
        trN.setId(1000+i);
        trN.setLayoutParams(new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

        //add data to table row
        Button btA = new Button (this);
        btA.setId(2000+i);
        btA.setText(aList.get(i).toString());
        btA.setTextSize(15);
        btA.setTextColor(Color.BLACK);
        btA.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
        btA.setOnClickListener(this);
        btA.setSingleLine(false);
        btA.setHorizontallyScrolling(false);
        btA.setLayoutParams(btnSize);

        Button btB = new Button (this);
        btB.setId(3000+i);
        btB.setText(bList.get(i).toString());
        btB.setTextSize(15);
        btB.setTextColor(Color.BLACK);
        btB.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
        btB.setOnClickListener(this);
        btB.setSingleLine(false);
        btB.setHorizontallyScrolling(false);
        btA.setLayoutParams(btnSize);

        trN.addView(btA);
        trN.addView(btB);

        tableConv.addView(trN);
    }//for

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Замените это:

 ViewGroup.LayoutParams btnSize = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);

на это:

TableRow.LayoutParams btnSize = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,TableRow.LayoutParams.WRAP_CONTENT);

, а также замените это:

 trN.setLayoutParams(new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

на:

trN.setLayoutParams(new TableLayout.LayoutParams (TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.WRAP_CONTENT));
0 голосов
/ 06 декабря 2011

Я бы порекомендовал назначить фиксированный размер для строк таблицы (и, пожалуйста, преобразуйте из dp, а не в точные пиксели!), А затем установите высоту каждой кнопки равной MATCH_PARENT.

...