问题描述
我有一个问题,当我设置的TableRow
layout_weight
编程。
继code是 TableLayout
虚增在 table_body
元素:
I have a problem when I set the TableRow
layout_weight
programmatically.Following code is the TableLayout
inflated in table_body
element:
<TableLayout
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:weightSum="1">
<TableLayout>
我想在 TableLayout
..只显示10行,要做到这一点我添加的TableRow
元素的编程使用,这是code:
I want to display only 10 rows in TableLayout
.. and to do this i add TableRow
elements programmatically using this is the code:
while(i<10){
TableRow row = (TableRow) ((Activity) context).getLayoutInflater().
inflate(R.layout.body_row, table_body, false);
TableRow.LayoutParams row_params =
new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, 0, 0.1f);
table_body.addView(row, row_params);
i++;
}
body_row.xml有这个code:
body_row.xml has this code:
<TableRow>
<TextView
android:text="row1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</TableRow>
有了这个code TableLayout
不等于10除以空间(因为我愿意),但行只与间的空白,结果包裹的内容最后一排和TableLayout的结束而结束。什么我做错了吗?
谢谢!!
With this code TableLayout
is not divided in 10 equal space (as I'd want) but rows only wrap their content with the result of blank space between the end of last row and the end of the TableLayout.. What I'm doing wrong?Thank you!!
推荐答案
为了让你需要使用适当的重量机制工作的LayoutParams
为您的膨胀的TableRow
小部件。由于的TableRow
的母公司是 TableLayout
,那么你需要使用 TableLayout.LayoutParams
:
To make the weight mechanism work you need to use the proper LayoutParams
for your inflated TableRow
widgets. As the parent of TableRow
is a TableLayout
then you need to use the TableLayout.LayoutParams
:
TableLayout.LayoutParams row_params = new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 0.1f);
table_body.addView(row, row_params);
这篇关于安卓:当设置编程layout_weight不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!