LinearLayout
元の高さから次のようにサイズ変更してい0
ます:
ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
requestLayout();
すべてが機能newHeight = 0
しますが、レイアウトの高さが元の高さに戻ります。どうすれば回避できますか?
可視性をGONE
ifに設定newHeight == 0
しても役に立ちません。
LinearLayout
元の高さから次のようにサイズ変更してい0
ます:
ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
requestLayout();
すべてが機能newHeight = 0
しますが、レイアウトの高さが元の高さに戻ります。どうすれば回避できますか?
可視性をGONE
ifに設定newHeight == 0
しても役に立ちません。
これを試して.....
LinearLayout layout = (LinearLayout)findViewById(R.id.yourLayoutId);
LinearLayout.LayoutParams lp = (LayoutParams) layout.getLayoutParams();
lp.height = 0;
layout = (LinearLayout)findViewById(R.id.linearTop);
layout.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
ViewGroup.LayoutParams params = layout.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
layout.setLayoutParams(params);
コピーではなく、実際のパラメータオブジェクトを取得してもよろしいですか?次のコードを試してみます。
ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
setLayoutParams(params);
requestLayout();
次に、新しいレイアウト パラメータ オブジェクトを設定してみてください。これはうまくいくはずです
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,0);
layout.setLayoutParams(lp);
setBaseAttributes()params
を使用して高さを設定する必要はありませんか? 影響はありません...int height = ...
params