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,如果您详细说明您的需求,这将是一个很好的帮助。但是我从你最近的帖子中了解到我想提出一种解决方案。

因为你有你的布局实例。

只需做lay.setVisiblity(View.GONE) 或lay.setVisiblity(View.INVISIBLE); 如果你想再次展示它,就做

放置.setVisibility(View.VISIBLE);

记住一件事 View.GONE 将释放线性布局占用的空间,而 View.INVISIBLE 将保持空间占用但只是隐藏布局。

于 2012-07-04T14:57:35.150 回答
1

无需更改布局高度。由于 LinearLayout 也是一个视图,因此您可以在布局上调用setVisibility(int)方法。

于 2012-07-04T14:52:20.133 回答