1

我有一个 Horizo​​ntalScrollView,其中包含可变数量的 VISIBLE 或 GONE ListViews。

当调用 ListView 的 OnItemClickListener 时,部分处理代码会更改其他 ListView 的可见性。

作为 OnItemClickListener 的一部分,我尝试使用 Horizo​​ntalScrollView.scrollTo() 在 ScrollView 的右侧显示新可见的 ListView。

在 ListView 变为 VISIBLE 或 GONE 后,scrollView.getRight() 不会报告 scrollView 内容的更改大小。在 OnItemClickListener 返回后,它会报告正确的新内容大小。

我错过了某种形式的 OnReflowed 回调吗?

在 OnItemClickListener 退出后,如何在布局重排后立即执行 .getRight() ?

4

1 回答 1

0

解决方案是:

1) 在 ScrollView 和 ListViews 之间插入一个子类的(线性)布局

2)在子类中添加一个 onSizeChanged 方法:

public void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    ((HorizontalScrollView) getParent()).scrollTo(w, 0);
}
于 2013-02-04T15:36:15.580 回答