You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:动态添加EditText至TableRow后无法显示的问题

问题:TableRow中添加EditText无法显示的解决办法

问题场景

我尝试通过代码向TableRow中添加若干EditText控件,但这些控件完全无法在屏幕上显示。奇怪的是,如果直接把EditText加到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"); 
    } 
}

解决方案

问题的核心在于你给EditText设置的布局参数类型不对——子控件要适配TableRow的布局规则,必须使用TableRow.LayoutParams来定义布局属性。修改你的layoutparams初始化代码即可:

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

这样设置后,每个EditText就能正确继承TableRow的布局逻辑,顺利显示在同一行中了。

内容的提问来源于stack exchange,提问作者user8553212

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:36:40