2

いくつかのボタンを保持する LinearLayout があります。ユーザーに画面上のより多くの(描画)スペースを与えるために、メニュープレスでこの LinearLayout を非表示にしたい:

if (keyCode == KeyEvent.KEYCODE_MENU) {

                if (showButtons) {
                    showButtons = false;
                    LinearLayout lay = (LinearLayout) this.findViewById(R.id.buttonLayout);
                    laySize = lay.getHeight();

                    go2trimsecond();
                } else {
                    showButtons = true;
                    go2trimsecond();
                }

高さを if(showButtons) に保存し、レイアウトの maxHeight を 0 に変更し、if(!showButtons) に戻すだけだと思っていましたが、setMaxHeight がないため、残念ながら間違っていました。これをどのように行うべきか考えていますか?

4

2 に答える 2

2

こんにちはstefple、あなたのニーズを詳しく説明していただければ助かります。しかし、あなたの最近の投稿から私が理解したことは、1つの解決策を提案したい.

レイアウトのインスタンスをレイとして持っているので。

lay.setVisiblity(View.GONE) または lay.setVisiblity(View.INVISIBLE); を実行するだけです。もう一度表示したい場合は、

lay.setVisibility(View.VISIBLE);

View.GONE は線形レイアウトが占めるスペースを解放するのに対し、View.INVISIBLE はスペースを占有したままレイアウトを非表示にすることを覚えておいてください。

于 2012-07-04T14:57:35.150 に答える
1

レイアウトの高さを変更する必要はありません。LinearLayout もビューであるため、レイアウトでsetVisibility(int)メソッドを呼び出すことができます。

于 2012-07-04T14:52:20.133 に答える