【问题标题】:How do I get the `layout_weight` of a TextView?如何获取 TextView 的“layout_weight”?
【发布时间】:2012-12-29 08:30:02
【问题描述】:

我有一个TableLayout 和一对TextViews。我想找到TextViewlayout_weight,但我不知道怎么做。我尝试了以下方法:

TableRow.LayoutParams lp = tv1.getLayoutParams();

和:

ViewGroup.LayoutParams lp = tv1.getLayoutParams();

在第一种情况下,我得到一个类型不匹配:“无法从 ViewGroup.LayoutParams 转换为 TableRow.LayoutParams”,第二种情况工作正常,但是 ViewGroup.LayoutParams 没有 weight 字段。

LayoutParams 的所有不同类型都令人困惑,我不知道在哪里使用哪个。

【问题讨论】:

标签: android textview layoutparams


【解决方案1】:

试试这个

TextView text = new TextView(v.getContext());
text.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));

试试this链接

【讨论】:

  • 设置LayoutParams 不是问题。它适用于 TableRowTableLayout LayoutParams。问题是我无法获得layout_weight,因为getLayoutParams() 返回一个不包括重量的ViewGroup.LayoutParams 对象。
【解决方案2】:

第一次尝试时,您几乎成功了。您只需要转换为正确的类型:

TableRow.LayoutParams lp = (TableRow.LayoutParams) tv1.getLayoutParams();

LinearLayout.LayoutParams 的任何子类(包括TableRow.LayoutParams)都会有一个weight 字段。

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多