1

我有一个线性布局的布局 xml 文件。其中一个孩子又是一个 ViewGroup 相对布局。在我的 java 代码中,我想根据我的要求更改这个子视图组的宽度。我试过这个

enter code here

    ViewGroup childViewGroup = (LinearLayout)findViewById(childViewGroup);
    LayoutParams l = childViewGroup.getLayoutParams();
    l.width = 360; 
    childViewGroup .setLayoutParams(l);

我不能这样做,因为 findViewById(childViewGroup) 不获取 ViewGroups 它只为 Views 做。

注意:我不能为这个小要求定义一个全新的 layout.xml,因为它是一个巨大的布局文件,可能会导致性能开销。我只想在我的 java 活动代码中更改子视图组的宽度。

在此先感谢您的帮助。

4

2 回答 2

1

ViewGroup 是 View 的子类,因此 findViewById 应该可以正常工作。您将结果转换为 LinearLayout,childViewGroup 是您在问题中指定的 LinearLayout 还是 RelativeLayout?– codelark 10 月 6 日 23:21

于 2010-11-17T23:48:08.683 回答
0

您可以使用ViewStubs.

您可以在这里找到参考:http:
//developer.android.com/resources/articles/layout-tricks-stubs.html

于 2011-05-18T15:13:34.333 回答