Изменение размера запущенного activity в режиме free-form
Коротко про режим free-form
Free-form - это режим для работы с окнами произвольной формы. Подробнее...
Мой код для запуска activity в режиме free-form
val intent = packageManager.getLaunchIntentForPackage("com.android.chrome")
var options = ActivityOptions.makeBasic()
try {
val method: Method = ActivityOptions::class.java.getMethod("setLaunchWindowingMode", Int::class.javaPrimitiveType)
method.invoke(options, 5)
} catch (_: Exception) {}
val windowsSize = Rect(
0,
0,
resources.displayMetrics.widthPixels,
resources.displayMetrics.heightPixels
)
options = options.setLaunchBounds(windowsSize)
startActivity(intent, options.toBundle())
Для корректной работы кода необходимо включить несколько опций в режиме разработчика
adb shell settings put global enable_freeform_support 1
adb shell settings put global force_resizable_activities 1
Вопрос
Как программно изменить размер окна, в котором запущено activity, без потери данных в activity (без перезапуска приложения)?
Источник: Stack Overflow на русском