我将行和cels添加到TableLayout以编程方式存在问题,以使细胞匹配父高度, 行设置:
row = TableRow(context)
row.layoutParams =
TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.MATCH_PARENT, 1.0f)
row.layoutParams = params;
然后我通过一些值循环并将单元格添加到" row"或多或少是这样的:
for(i..7){
val cel = TextView(context)
val params =
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT)
cel.layoutParams =params
cel.setBackgroundColor(Color.BLUE)
cel.text = i.toString()
}
但是cel(TextView-在我的情况下)没有填满高度,也尝试过:
val params =
LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
但没有工作 - 在两种情况下表" disapears"当尝试以这种方式设置布局参数时,完全形成视图......任何人都知道可能是正确的方法吗?
答案 0 :(得分:1)
首先正确指定布局参数。 布局参数由父视图管理。因此TableRow
应该有TableLayout.LayoutParams
,而任何单元格(此处为TextView
)都应该TableRow.LayoutParams
。 TableLayout
告诉TableRows
如何布局并TableRows
告诉他们的单元格如何布局。
所有提到的布局参数(包括LinearLayout.LayoutParams
)都有三个参数:宽度,高度和重量。当你使用正确的类时,它应该正常工作。