0

我有一个自定义视图,可以动态添加子视图。

添加每个孩子时,我需要重新计算视图的大小,以便它们适合父母的宽度

例如:如果我有一个 TextView:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center"
android:padding="8dp"
android:clickable="true"
android:textColor="#666666"
android:visibility="visible"/>

如果我将其中三个添加到 xml 中的水平 LinearLayout 中,它会正确调整三个视图的大小,以便总宽度与父视图匹配。

但是我想一次膨胀一个并添加它们,以便如果我们想要布局中不同数量的 TextView 可以在代码的其他地方重用。

当我这样做时,总宽度小于其父级,并且在添加新视图时我无法调整视图大小。

这是我放大视图的地方:

layout = (LinearLayout) inflater.inflate(R.layout.segmented_control, this); 
TextView item = (TextView) inflater.inflate(R.layout.segmented_control_item, null);
4

2 回答 2

0

将宽度更改为match_parent,我认为您需要保留weight. 将父布局传递给充气机。

layout = (LinearLayout) inflater.inflate(R.layout.segmented_control, this); 
TextView item = (TextView) inflater.inflate(R.layout.segmented_control_item, layout, false);
layout.addChild(item);

我不确定这是否立即有效,您可能需要对布局参数进行一些试验。

于 2013-05-03T00:02:48.897 回答
0

将您的 TextView 布局宽度更改为 fill_parent 并删除权重。我认为它应该工作。

于 2013-05-02T23:52:47.540 回答