TableLayout中的cel不会" match_parent"

时间:2018-02-25 17:18:07

标签: android kotlin

我将行和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"当尝试以这种方式设置布局参数时,完全形成视图......任何人都知道可能是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

首先正确指定布局参数。 布局参数由父视图管理。因此TableRow应该有TableLayout.LayoutParams,而任何单元格(此处为TextView)都应该TableRow.LayoutParamsTableLayout告诉TableRows如何布局并TableRows告诉他们的单元格如何布局。

所有提到的布局参数(包括LinearLayout.LayoutParams)都有三个参数:宽度,高度和重量。当你使用正确的类时,它应该正常工作。