Добавление поддержки нескольких окон в приложении Android для Android
Я пошел и попытался добавить поддержку многооконного приложения Samsung для своего приложения, следуя этой ссылке . Мое приложение появилось на вкладке многоязычных приложений Samsung, и мне удалось перетащить его на экран, однако мое приложение не вело себя так, как должно поддерживаться приложение, поддерживающее несколько окон, но вместо этого расширяется до полного экрана.
Я думаю, что есть некоторые другие изменения, которые нужно сделать, чтобы заставить его работать правильно, но я понятия не имею, что. Есть ли у кого-нибудь идеи, что может быть причиной такого поведения?
Ответы
Ответ 1
Это сообщение форума xda-developers содержит пошаговое руководство, которое я перефразировал здесь.
Убедитесь, что ваш манифест содержит следующее в теге <application>
:
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:resource="@dimen/app_defaultsize_w" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:resource="@dimen/app_defaultsize_h" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:resource="@dimen/app_minimumsize_w" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:resource="@dimen/app_minimumsize_h" />
Для желаемой активности добавьте тег <intent-filter>
:
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
Обязательно определите указанные выше размеры в файле ресурсов.
В разделе комментариев этого блога пользователь указывает, что минимальный размер вызывал для него проблему, и предложил удалить com.sec.android.multiwindow.MINIMUM_SIZE_W
и com.sec.android.multiwindow.MINIMUM_SIZE_H
.
Один пользователь указал, что указание размеров с помощью ресурса измерения не сработало для него; он вместо этого закодировал атрибут value:
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:value="632.0dip" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:value="598.0dip" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:value="632.0dip" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:value="598.0dip" />
Боюсь, я не могу попробовать себя, так как у меня нет заметки о галактике.
Ответ 2
После тестирования моего приложения на Galaxy Note 3 я обнаружил еще две вещи:
MINIMUM_SIZE
и DEFAULT_SIZE
работает только на планшетах MultiWindow для Samsung, а не на смартфонах.
Также, если вы хотите включить Multi-Instance в своем приложении, добавьте эту строку в свой AndroidManifest:
<meta-data
android:name="com.samsung.android.sdk.multiwindow.multiinstance.enable"
android:value="true" />
Ответ 3
Также стоит отметить окно Pen (часть многооконной системы) для вашего приложения, рядом с Multi-Window и Multi-Instance, как указано здесь (http://forum.xda-developers.com/showthread.php?t=2499720):
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
и добавьте код Launcher в вашу деятельность:
<category android:name="android.intent.category.PENWINDOW_LAUNCHER" />
В качестве примечания к коду запуска введите сообщение xda с префиксом com.samsung
, но я не смог заставить его работать над моим N3, как описано там (я использовал модифицированный код выше). В окне "Перо" вам нужно будет нажать "Правка" и перетащить свое приложение снизу на экран "Окно окна окна", прежде чем вы сможете его использовать.
Ответ 4
Чтобы поддерживать многократное окно на Android 7 и выше, просто установите этот андроид: resizeableActivity в true в вашем манифесте "активность" или "приложение":
android:resizeableActivity="true"
https://developer.android.com/guide/topics/ui/multi-window.html