1

ScrollView含むがありLinearLayoutます。

コードでアイテムをに追加するLinearLayoutと、うまく拡張されます。

コードで、からすべてのアイテムを削除すると、同じサイズLinearLayoutLinearLayoutままですが、空です。

アイテムがあったときに使用されていたものに到達し、LinearLayoutを縮小して、空になったときに最小の高さを使用するにはScrollViewどうすればよいですか?reclaim the heightLinearLayout

私は(C#で)試しました:

        linearLayout.RemoveAllViewsInLayout();
        linearLayout.PostInvalidate();
        scrollView.PostInvalidate();

JavaまたはC#の回答で問題ありません。

4

2 に答える 2

2

私はAndroidでJavaの経験しか持っていないので、次を使用してみます。

linearLayout.requestLayout();

LinearLayoutこれにより、別のレイアウトパスが発生するはずです。これが設定されていると仮定するとWRAP_CONTENT、すべての子が測定され、子が占める最小のスペースに合うようにサイズが変更されます(またはminHeight、そのセットがあり、それよりも大きい場合)。

于 2012-06-11T21:35:03.107 に答える
0

このトリックはうまくいくようです。その結果、linearlayout idのサイズが変更され、scrollviewも次のようになります。

        linearLayout.RemoveAllViewsInLayout();
        linearLayout.Visibility = ViewStates.Gone;
        scrollView.SmoothScrollTo(0, 0);
        linearLayout.Visibility = ViewStates.Visible;

より良い方法があるはずですが、これは機能します。

于 2012-06-11T21:27:20.210 に答える