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

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

1 голос
/ 21 декабря 2011

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

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

1 Ответ

0 голосов
/ 21 декабря 2011

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

Нам нужен метод, который может сообщить нам, если все четыре кнопки невидимы. Для этого нам нужно использовать метод isShown(), который возвращает true, если для 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...