我有一个自定义视图,我动态添加子视图。
添加每个孩子后,我需要重新计算视图的大小,以便它们符合父级的宽度
例如: 如果我有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);
答案 0 :(得分:0)
将TextView布局宽度更改为fill_parent并删除权重。我认为它应该有用。
答案 1 :(得分:0)
将宽度更改为match_parent
,我认为您需要保留weight
。将父布局传递给inflater。
layout = (LinearLayout) inflater.inflate(R.layout.segmented_control, this);
TextView item = (TextView) inflater.inflate(R.layout.segmented_control_item, layout, false);
layout.addChild(item);
我不确定这是否可行,你可能需要尝试一下布局参数。