0

ユーザーがログインしているときにのみ表示される動的な SignOut 行を持つメニュー ListView があります。ListView の後にドロップ シャドウがあります (フッターとしてではなく、ListView に続くビューとして設定されます)。SignOut 行を削除すると消えますが、ListView のサイズは変わらないため、透明なギャップとドロップシャドウがあります。を使用して SignOut 行をsignOutBtn.setVisibility(View.GONE);非表示にしています (RelativeLayout である signOutBtn ビューへの参照があります)。また、 View.INVISIBLE を使用していないことを確認しました。これを使用すると、この動作が予想されるためです。

ListView はwrap_content高さを使用していますが、これが問題の原因であると考えています。SignOut ボタンを含めて高さが計算されています。

問題は、行が表示または非表示になったときに ListView を動的にサイズ変更するにはどうすればよいかということです。ビューを破棄して再作成したくないのですが、それは比較的単純なビューであるため、次に試みることになるでしょう。

PS。必要に応じてコード サンプルを追加できます。

4

1 に答える 1

1

最終的に、アダプター データを更新し、ユーザーのログイン状態に基づいて signOut 行を削除または追加することにしました。それは非常に単純で、ボタンの表示/非表示に基づいてかなりの数の条件を削除することができました。さらに、ListView アダプターの signOut ボタンに一意の ID を割り当てるためのコードを削除して、それを調べて非表示にすることができました。 .

于 2013-10-02T22:02:38.150 に答える