getLayoutParams()没有权重属性(Android)

时间:2014-09-14 01:10:05

标签: android

我试图在我的函数中获得android:layout_weight。这是我的xml代码:

    <LinearLayout
        android:id="@+id/myID"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="14"
        android:clickable="true"
        android:orientation="horizontal">
    ......
    </LinearLayout>

我的部分功能:

import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableLayout.LayoutParams;

....
LinearLayout layout = (LinearLayout) findViewById(R.id.myID);

但是当我尝试拨打layout.getLayoutParams()时,没有weight变量,只有宽度,高度,...... 这是因为导入的包裹还是为什么getLayoutParams()没有重量?

这与此处的问题相同,但他也无法解决问题:How do I get the `layout_weight` of a TextView?

1 个答案:

答案 0 :(得分:2)

视图中使用的布局参数的实际类型取决于它所在的容器类型。并非所有布局参数类型都具有weight字段。如果您的布局是另一个LinearLayout(或其某个派生类,例如TableLayoutTableRow)的一部分,那么您只需要转换从layout.getLayoutParams()返回的值到正确的类型。例如:

float weight = ((LinearLayout.LayoutParams) layout.getLayoutParams()).weight;

您没有确切地说明layout视图所处的布局类别,所以我不能比这更具体。