2012-07-04 2 views
2

У меня есть LinearLayout, в котором есть несколько кнопок. Чтобы дать пользователю больше (рисунок) пространство на экране я хочу, чтобы скрыть эту LinearLayout в меню печати:Android: Скрыть LinearLayout onKeyDown

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(); 
       } 

Я думал, я просто сохранить высоту, если (showButtons), изменить MaxHeight макета до 0 и измените его на if (! showButtons), но, к сожалению, я думал неправильно, так как нет setMaxHeight. Любая идея, как я должен это делать?

ответ

2

Hi stefple, Было бы неплохо помочь, если вы уточните свою потребность. Но то, что я понял из вашей недавней публикации, хочу предложить одно решение.

Как у вас есть экземпляр вашего макета как лежащий.

просто сделать lay.setVisiblity (View.GONE) или lay.setVisiblity (View.INVISIBLE); , и в случае, если вы хотите показать его снова, просто сделайте

lay.setVisibility (View.VISIBLE);

Помните одну вещь. View.GONE освободит пространство, занимаемое вашей линейной компоновкой, тогда как View.INVISIBLE сохранит занятое пространство, но просто скроет макет.

+0

Отлично работает, спасибо! – stefple

+0

Вы добро пожаловать и продолжаете .. удачи –

1

Не нужно менять высоту макета. Поскольку LinearLayout также представляет собой вид, вы можете вызвать метод setVisibility(int) на вашем макете.

+0

Большое спасибо, собирался ответить, что это не работает. Я попробовал setVisibilty (0), но с ответом Suresoft я получил его работу. – stefple

Смежные вопросы