Макеты виджетов на главном экране с одинаковым соотношением сторон после поворота

#android #android-layout #widget #orientation #tablet

#Android #android-макет #виджет #ориентация #планшет

Вопрос:

Я хочу, чтобы мой виджет сохранял одинаковое соотношение сторон после поворота в планшетах

В моем манифесте я вызываю макет в приемнике:

 android:name="android.appwidget.provider"
android:configChanges="orientation"
android:resource="@layout/mywidget"
  

Я создаю две папки в res: layout-land и layout-port и помещаю в них один и тот же файл «mywidget.xml » но при разных значениях (строки и столбцы) в трее достигается одинаковое соотношение сторон:

Для ландшафта:

 <appwidget-provider 
android:minWidth="250dip" 
android:minHeight="460dip">
</appwidget-provider>
  

Для портрета:

 <appwidget-provider 
android:minWidth="320dip" 
android:minHeight="390dip">
</appwidget-provider>
  

Но пейзаж не работает. Я могу указать любое значение и отметить, что происходит. Только для изменения значений эффекта в портретном файле. Но невозможно получить такое же соотношение сторон.
Помогите найти решение.

Комментарии:

1. AFAIK, решение о соотношении сторон зависит от главного экрана, а не от вас. Ваши ширины и высоты преобразуются в определенное количество ячеек, и эти ячейки не обязательно должны быть квадратными или иным образом согласовываться между ориентациями.

2. Я понимаю. Но разве невозможно компенсировать это преобразование, например, добавив больше вертикальных ячеек (в значении dip)? Примечание: мой виджет вертикальный, и я хочу поддерживать его вертикально в альбомной ориентации.

3. Ненадежно. Во-первых, ячейки должны быть большими (например, мой домашний экран имеет сетку ячеек размером 5×6). Во-вторых, ячейки не обязательно должны быть квадратными. В целом, поведение домашних экранов, когда дело доходит до ориентации, зависит от домашнего экрана. Некоторые могут не перезагружать метаданные виджета из-за изменения ориентации. Обратите внимание, что <appwidget-provider> элементы входят в res/xml/ и связанные каталоги, а не res/layout/ .