Android:使用百分比以编程方式设置 subview 的宽度

标签 android android-layout android-linearlayout

我读过这篇文章:

Setting width of Child View using Percentage

到目前为止,如果我们在 XML 中设置重量和宽度,效果很好,但我想以编程方式进行。我的布局 (XML) 中有一个表格,我正在以编程方式向其中添加行。在每一行中,我都添加了 2 个 TextView 。我试过这样做:

TableLayout tl = (TableLayout)findViewById(R.id.myTable);
for(int i = 0; i < nl.getLength(); i++){
            NamedNodeMap np = nl.item(i).getAttributes();
                TableRow trDetails = new TableRow(this);
                trDetails.setBackgroundColor(Color.BLACK);
                TextView tvInfo = new TextView(this);
                tvInfo.setTextColor(Color.WHITE);
                tvInfo.setGravity(Gravity.LEFT);
                tvInfo.setPadding(3, 3, 3, 3);
                tvInfo.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);

                tvInfo.setText("info");

                TextView tvDetails = new TextView(this);
                tvDetails.setTextColor(Color.WHITE);
                tvDetails.setGravity(Gravity.LEFT);
                tvDetails.setPadding(3, 3, 3, 3);
                tvDetails.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
                tvDetails.setText(np.getNamedItem("d").getNodeValue());

                trDetails.addView(tvInfo, new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.50f));
                trDetails.addView(tvDetails, new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.50f));

                tl.addView(trDetails,new TableLayout.LayoutParams(
                        LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));
}

但运气不好,它显示空白屏幕,但如果我用 XML 进行操作,它就会完美显示。请帮我解决我做错的问题?

谢谢

最佳答案

您应该使用 TableRow.LayoutParams 而不是 Linearlayout.LayoutParams

trDetails.addView(tvInfo, new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.50));
trDetails.addView(tvDetails, new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.50));

关于Android:使用百分比以编程方式设置 subview 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7500703/

相关文章:

android - Kindle 的 Android 应用程序如何处理字典查找的点击

android - layout_gravity 在水平线性布局中不起作用

android - 在 Android 上,如何通过窗口上的元素(包括 ListView)显示背景图像?

android - 将标记中心设置为 GeoPoint

android - 如何在 flutter 中打开位置后更新我的位置

android - android中的fill_parent和match_parent有什么区别

android - 删除 TableLayout 中 TableRow 之间的任意间隙

安卓编程 : Background color not fully covering fragments

android - 从主 Activity 更新不同布局 xml 中的 TextView

android - ListView的getView()方法是什么时候调用的?