Я изо всех сил стараюсь выполнить спецификации домашнего проекта над видимостью кнопок меню. В проекте указано, что должны быть три кнопки видимости: все, х и у. Нажатие на x и нажатие на y должно привести к тому, что 2 элемента меню будут видимыми или невидимыми. При нажатии на все должны отображаться все 4 элемента или нет. Когда все 4 элемента не видны, должны быть видны 3 кнопки видимости.
Моя проблема в том, что я не смог понять, как можно видеть 3 видимые кнопки, когда все 4 элемента меню невидимы. Я пробовал разные заказы и группировки в groups.xml безрезультатно. Это должно быть довольно просто, но по какой-то нечетной причине я не могу понять это. Я также не могу найти какой-либо ресурс для изучения (не используя правильные слова для поиска?). Пожалуйста, дайте мне несколько указателей! Благодарю.
В Вашей 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
.