Как изменить макет с изменением ориентации, как это делает приложение youtube? Кажется, что RecyclerView изменяет макет элемента в ландшафтном режиме, как это можно сделать (я считаю, что состояние фрагмента сохраняется, поэтому оно не просто сохраняет состояние с данными, последнее положение и так далее, а затем загружает пейзаж файлы макета) Какова наилучшая практика?android Как изменить макет при изменении ориентации с сохранением состояния, как приложение YouTube?
android Как изменить макет при изменении ориентации с сохранением состояния, как приложение YouTube?
ответ
Вы можете добавить
android:configChanges="orientation|screenSize"
к вашей деятельности в манифесте. Поэтому изменение ориентации не приведет к перезагрузке вашей активности.
true, но он не изменит файлы макета, Как я получил его на работу, это поместить все данные, которые я уже загружаю в сохраненное состояние экземпляра (таким образом, мне не нужно будет звонить в сеть и так далее) а затем в папке layouts, layout-land я помещаю те же ресурсы компоновки, но с разной структурой представления, таким образом, она будет загружаться автоматически с помощью ландшафтного макета. Возможно, будет выполнен другой способ, используя [ConstraintLayout] (https://developer.android.com/training/constraint-layout/index.html). Я попытаюсь его исследовать, и если результат достигнут, я отправлю его здесь –
Проверьте это https://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en. В нем объясняется, как использовать сохраненный экземпляр для воссоздания представлений. –
Спасибо @CedricFranck, это очень искусно, но все же как изменить макет, как это делает приложение YouTube? –
Вам нужно создать два XML. Один для портрета, другой для пейзажа. Когда вы меняете ориентацию из «Портрет» в «Пейзаж», просто сохраняйте все ваши представления, находящиеся внутри сохраненного экземпляра, а затем при создании действия с ландшафтным видом вы можете вернуть данные тезисов и убрать ваши представления. –