#java #android
#java #Android
Вопрос:
Я хочу иметь разные представления, основанные на выполняемом действии.
Мой вопрос:
1) С точки зрения макета, как мне нужно настроить свои представления, чтобы я мог переключаться между TextView и хронометром?
Ответ №1:
На этот вопрос сложно ответить, потому что он не очень специфичен, и наилучший подход может зависеть от того, что именно вы пытаетесь сделать. Однако я просто собираюсь предположить, что Activity
в настоящее время у вас есть один, и вы просто хотите, чтобы тот View
или иной вид View
был виден, возможно, в зависимости от результата выбора какого-либо меню или чего-то еще.
То, как я интерпретирую ваш вопрос, чтобы сделать его более конкретным, в основном «как я могу динамически добавлять / удалять View
s или делать их невидимыми / видимыми».
Чтобы заставить дочерние Views
элементы появляться и исчезать, существует ряд простых подходов, которые вы могли бы предпринять:
-
Удаляйте и добавляйте
Views
к родительскомуView
элементу по мере необходимости, используяaddView()
removeView()
вызовы и для родительского элемента, содержащегоViewGroup
(который может, например, содержатьLinearLayout
a ). Когда вы добавляетеView
, вы захотите передать соответствующие параметры макета для его позиционирования и т.д. -
Вы можете использовать
setVisibility()
on aView
, чтобы скрыть его или сделать его видимым. (Возможно, установка ширины и высоты на ноль может иметь тот же эффект.) -
… и, возможно, многие другие возможности, в зависимости от того, чего именно вы хотите достичь. Например, если вы хотите показать две несколько разные композиции пользовательского интерфейса в зависимости от выбранного действия, вы можете просто использовать отдельные
Activity
классы в целом, или вы можете переключаться между макетами с помощьюViewFlipper
, и так далее.