1

可変数の VISIBLE または GONE ListViews を含む Horizo​​ntalScrollView があります。

ListView の OnItemClickListener が呼び出されると、処理コードの一部が他の ListView の可視性を変更します。

OnItemClickListener の一部として、ScrollView の右側に新たに表示される ListView を表示するために Horizo​​ntalScrollView.scrollTo() を試みています。

scrollView.getRight() は、ListView が VISIBLE または GONE になった後、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 に答える