【问题标题】:Objects added to a tablerow don't show up?添加到 tablerow 的对象不显示?
【发布时间】:2018-05-09 21:42:53
【问题描述】:

我正在尝试以编程方式将一些 EditText 添加到 TableRow,但它们没有显示在屏幕上。如果我将 EditTexts 直接添加到 TableLayout 它工作正常,但我确实希望将它们放在一行中......

public void createPlayers(){
    EditText[] editTextSpieler = new EditText[anzahl_Spieler];
    TableRow tableRow = new TableRow(getActivity());
    tableRow.setLayoutParams(new TableRow.LayoutParams(
            TableRow.LayoutParams.MATCH_PARENT,
            TableRow.LayoutParams.WRAP_CONTENT));
    tableLayout.addView(tableRow);
    for(int i = 0; i < anzahl_Spieler; i++){
        editTextSpieler[i] = new EditText(getActivity());
        editTextSpieler[i].setLayoutParams(layoutparams);
        tableRow.addView(editTextSpieler[i]);
        editTextSpieler[i].getLayoutParams().width = dWidth/(anzahl_Spieler + 1);
        editTextSpieler[i].setHint("Name");
    }
}

提前致谢。

解决方案:

layoutparams = new TableRow.LayoutParams(
            TableRow.LayoutParams.MATCH_PARENT,
            TableRow.LayoutParams.WRAP_CONTENT);

使用 TableRow.LayoutParams 指定 MATCH_PARENT 和 WRAP_CONTENT 完成了这项工作

【问题讨论】:

    标签: java android


    【解决方案1】:

    你能试试这个改变吗?

    editTextSpieler[i].getLayoutParams().width = dWidth/(anzahl_Spieler + 1);
    editTextSpieler[i].setHint("Name");
    //Move to last line in the loop.
    tableRow.addView(editTextSpieler[i]);
    

    【讨论】:

    • 不幸的是,这没有帮助。也将它移动到最后一行,就像布局参数不能改变一样。
    • 你能通过删除这一行来检查吗 editTextSpieler[i].getLayoutParams().width = dWidth/(anzahl_Spieler + 1);
    • 屏幕上什么也没有。
    • 这应该不会导致任何问题,因为当对象直接添加到表格布局时也不会导致任何问题。
    • 好的。你能把layoutparams去掉,把new TableRow.LayoutParams( TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)去掉,然后检查一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多