У меня есть linearLayout, который содержит два FrameLayout. Я установил видимость для одного из них на GONE , когда я работаю в ландшафтном режиме. И когда я возвращаюсь в портретный режим, я устанавливаю видимость VISIBLE . Я использую GONE , потому что я не хочу зарезервированное место невидимого элемента.
Результат :
При возврате в портретный режим два положения FrameLayout меняются.
< EM> Случаи :
- Когда я выбираю первый frameLayout для перехода в ландшафт, второй меняет положение.
- Когда я выбираю второй frameLayout для перехода в ландшафт, первый меняет положение.
3 ответа
Вы можете попытаться использовать ограничение ограничений вместо линейного вывода и поставить рекомендации
Это из официального документа:
GONE: полностью скрыт, как будто вид не был добавлен.
Таким образом, когда вы устанавливаете FrameLayout снова видимым, вы добавляете его снова, и он занимает последнюю позицию.
Я рекомендую вам удалить и добавить представление вместо того, чтобы сделать его видимым и пропавшим. Когда вы добавите его, используйте метод addView
с параметром index, чтобы он занял первую позицию:
linearLayout.addView(frameLayout,0);
Лучше добавить оба файла макета ландшафта / портрета, и с этим больше не будет проблем.
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .