如何强制ScrollView孩子onMeasure?

时间:2014-03-24 14:49:47

标签: android android-layout android-scrollview

在视图层次结构中:

  • ViewParent > ScrollView > LinearLayout

当维度发生变化时,ViewParent.onMeasure仅在ScrollView.onMeasure发生变化时才会调用LinearLayout.onMeasure来调用ScrollView.width,这似乎正常,因为LinearLayout仅受其父级约束的宽度

如果LinearLayout.onMeasure未更改,如何强制ScrollView.width

1 个答案:

答案 0 :(得分:0)

解决方案

覆盖ScrollView.onMeasure并添加LinearLayout.forceLayout来电:

@Override
protected void onMeasure(int wMS, int hMS) {
    if (getChildCount() > 0)
        getChildAt(0).forceLayout();
    super.onMeasure(wMS, hMS);
}