java - 动态设置textview的宽度

标签 java android

在我的项目中,我需要根据接收到的数据动态绘制 TextView 行以显示它。为了正确对齐它们,我使用了 Table Row n xml,并在 java 代码中调用了它。现在,在他们的 LayoutParam 中,我给出了 MATCH_PARENT,但它根据接收到的数据长度包装文本。现在,我想修复表格 View 的字段宽度。我在 postExecute 方法中完成所有这些过程。在这个方法中,我使用setWidth函数根据标题行元素的宽度来设置它。这里,Sno是一个 View ,而size是包含headerRow所有元素宽度的数组。

 Sno.setTag(patient);
 Sno.setWidth(size[0]); 

但它并没有解决这个问题,当我尝试 getWidth 查看它的宽度时,它显示它的值为 0。然后我尝试使用 LinearLayout.LinearParams 设置这个宽度

LinearLayout.LayoutParams params_sno = new LinearLayout.LayoutParams(size[0],
LinearLayout.LayoutParams.MATCH_PARENT);
Sno.setLayoutParams(params_sno);

但仍然没有任何好处,其次,如果我从 LayoutParams 的宽度中删除 MATCH_PARENT,它的宽度会从标题行元素的宽度增加。 没有数据的字段是不可见的。

最佳答案

试试这个

TableRow row = new TableRow(activityContext);

            TableLayout.LayoutParams td_tr = new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

            row.setWeightSum(10);
            row.setLayoutParams(td_tr);
            row.setGravity(Gravity.CENTER);
            row.setBackgroundColor(Color.parseColor("#D2D2D2"));

            TextView tv= new TextView(activityContext);
            tv.setText(String.valueOf(i));
            tv.setTextAppearance(activityContext, style.tvBoldRow);
            tv.setLayoutParams(new TableRow.LayoutParams(0 , LayoutParams.WRAP_CONTENT, 1)); // Here you can set weight to your TextView.
            tv.setPadding(2, 2, 2, 2);
            tv.setGravity(Gravity.CENTER);
            row.addView(tv);

关于java - 动态设置textview的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18786232/

相关文章:

java - 如何从面板内切换 JFrame 中的 JPanel?

安卓 : How to add child view on top of Softkeyboard for Emoji?

android - 如何将android wifi连接到adhoc wifi?

java - Android:Error - Case 表达式必须是常量表达式

java - 在 iOS 上信任我自己的 CA

java - 访问 JSP Java scriptlet 中的 Controller 方法而不是使用标签?

java - Android 的渐进增强?

java - 无法在 Spring Boot 安全性中从表单添加用户

android - 如何防止android对讲说话seekbar进度

java - 在这种情况下有没有办法完全避免重复代码?