У меня есть linearLayout, который содержит два FrameLayout. Я установил видимость для одного из них на GONE , когда я работаю в ландшафтном режиме. И когда я возвращаюсь в портретный режим, я устанавливаю видимость VISIBLE . Я использую GONE , потому что я не хочу зарезервированное место невидимого элемента.

Результат :

При возврате в портретный режим два положения FrameLayout меняются.

< EM> Случаи :

  • Когда я выбираю первый frameLayout для перехода в ландшафт, второй меняет положение.
  • Когда я выбираю второй frameLayout для перехода в ландшафт, первый меняет положение.
-2
Walid 21 Авг 2018 в 18:58

3 ответа

Лучший ответ

Вы можете попытаться использовать ограничение ограничений вместо линейного вывода и поставить рекомендации

1
R.F 22 Авг 2018 в 10:40

Это из официального документа:

GONE: полностью скрыт, как будто вид не был добавлен.

Таким образом, когда вы устанавливаете FrameLayout снова видимым, вы добавляете его снова, и он занимает последнюю позицию.

Я рекомендую вам удалить и добавить представление вместо того, чтобы сделать его видимым и пропавшим. Когда вы добавите его, используйте метод addView с параметром index, чтобы он занял первую позицию:

 linearLayout.addView(frameLayout,0);
-1
Pablo 21 Авг 2018 в 16:30

Лучше добавить оба файла макета ландшафта / портрета, и с этим больше не будет проблем.

0
TT_W 21 Авг 2018 в 16:24
51952576