Как изменить вид для отображения нескольких окон в Android N? Как проверить приложение в многооконном режиме или нет?
Как мы можем дать отдельное расположение или отдельное действие для Многократного окна?
например. Я проверил ниже вещи с помощью сайта разработчика Android
<activity android:name="com.configure.it.MyScreen">
<layout android:defaultHeight="400dp"
android:defaultWidth="200dp"
android:gravity="top|end"
android:minimalSize="300dp" />
</activity>
декларируя вышеизложенное, это влияет на поведение деятельности в многооконном режиме.
Но как я могу показать другой макет, если мой конкретный экран активирован в многооконном режиме?
2 ответа
Из ссылки для разработчиков Android.
Для внесения изменений в пользовательский интерфейс или отдельную раскладку, которая должна использоваться при активировании нескольких окон.
Мы можем проверить, есть ли активность в нескольких окнах, следующим образом
- От деятельности
Activity.isInMultiWindowMode()
Позвоните, чтобы узнать, находится ли активность в многооконном режиме.
например. Чтобы проверить в Activity, если его несколько окон, чем заголовок (или любой вид должен иметь красный цвет фона, если он не в нескольких окнах, чем зеленый цвет фона)
headerView.setBackgroundColor(inMultiWindow()?Color.RED:Color.GREEN);
с помощью inMultiWindow()
замена фрагмента также возможна
- Для получения обратного вызова при многооконной активации.
Из деятельности onMultiWindowChanged
метод доступен для обработки изменений во время выполнения этого метода обратного вызова. Система будет вызывать обратный вызов для этого метода всякий раз, когда действие переходит в многооконный режим или выходит из него с boolean
Значение. С помощью примера ссылки и Android-разработчик ссылка
@Override
public void onMultiWindowChanged(boolean inMultiWindow) {
super.onMultiWindowChanged(inMultiWindow);
headerView.setBackgroundColor(inMultiWindow ? Color.RED : Color.GREEN);
// here we can change entire fragment also.
//If multiple window in than seperate and for multiple window out different
}
Буду обновлять, если получу что-нибудь еще.
isInMultiWindowMode() добавлен в API 24 для проверки, находится ли устройство в многооконном режиме или нет, он возвращает логическое значение. всякий раз, когда устройство переходит в многооконный режим, оно срабатывает onConfigurationChanged()
метод.
вам нужно будет вручную обновить ваши представления, ресурсы для перезагрузки и т. д. в onConfigurationChanged() в зависимости от альбомного и портретного режимов.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//do something (Update your views / Reload resources)
}else{
}
}
В Manifest.xml
<activity
android:name=".yourActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
/>
Для дальнейшей справки проверьте с Многооконной Поддержкой Google Dev и MultiWindow Medium Corp