Видимость кнопок меню

1

Я изо всех сил стараюсь выполнить спецификации домашнего проекта над видимостью кнопок меню. В проекте указано, что должны быть три кнопки видимости: все, х и у. Нажатие на x и нажатие на y должно привести к тому, что 2 элемента меню будут видимыми или невидимыми. При нажатии на все должны отображаться все 4 элемента или нет. Когда все 4 элемента не видны, должны быть видны 3 кнопки видимости.

Моя проблема в том, что я не смог понять, как можно видеть 3 видимые кнопки, когда все 4 элемента меню невидимы. Я пробовал разные заказы и группировки в groups.xml безрезультатно. Это должно быть довольно просто, но по какой-то нечетной причине я не могу понять это. Я также не могу найти какой-либо ресурс для изучения (не используя правильные слова для поиска?). Пожалуйста, дайте мне несколько указателей! Благодарю.

Теги:
menu

1 ответ

0
Лучший ответ

В Вашей Activity (или Fragment), где вы получите ссылку на кнопки я хотел бы сделать что - то вроде следующего, где кнопка видимости будет называться x, y и all, и четыре кнопки, они контролируют будет button1, button2, button3 и button4,

Нам нужен метод, который может нам рассказать, если все четыре кнопки являются невидимыми. Для этого нужно использовать метод isShown(), который возвращает истину, если Views видимость установлена на VISIBLE:

private boolean areButtonsInvisible() {
   return !button1.isShown() && !button2.isShown() && !button3.isShown() && !button4.isShown();
}

Этот метод вернет true тогда и только тогда, когда все кнопки имеют видимость GONE или INVISIBLE.

Затем нам нужен способ обработки видимости трех кнопок состояния просмотра:

private void handleViewButtons() {
   if( areButtonsInvisible() ) {
      x.setVisibility( View.VISIBLE );
      y.setVisibility( View.VISIBLE );
      all.setVisibility( View.VISIBLE );
   }

   //You can handle other situations here as well. I haven't added any because you haven't stated anything about other scenarios.
}

Затем в OnClickListeners из x, y и all вы просто добавляете вызов методу handleViewButtons() после того, как вы установите видимость button1, button2, button3 и button4.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню