5

LinearLayout元の高さから次のようにサイズ変更してい0ます:

ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
requestLayout();

すべてが機能newHeight = 0しますが、レイアウトの高さが元の高さに戻ります。どうすれば回避できますか?

可視性をGONEifに設定newHeight == 0しても役に立ちません。

4

5 に答える 5

13

これを試して.....

 LinearLayout layout = (LinearLayout)findViewById(R.id.yourLayoutId);

 LinearLayout.LayoutParams lp = (LayoutParams) layout.getLayoutParams();
 lp.height = 0;
于 2012-09-03T10:46:07.300 に答える
3
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);
于 2015-09-14T11:07:06.780 に答える
0

コピーではなく、実際のパラメータオブジェクトを取得してもよろしいですか?次のコードを試してみます。

ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
setLayoutParams(params);
requestLayout();
于 2012-09-03T10:27:35.977 に答える
0

次に、新しいレイアウト パラメータ オブジェクトを設定してみてください。これはうまくいくはずです

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,0);
layout.setLayoutParams(lp);
于 2012-09-03T10:41:33.423 に答える
0

setBaseAttributes()paramsを使用して高さを設定する必要はありませんか? 影響はありません...int height = ...params

于 2012-09-03T09:48:16.297 に答える