Интерфейс библиотеки Android и границы библиотеки приложений - PullRequest
1 голос
/ 03 января 2012

У меня есть приложение для Android, которое я хотел бы преобразовать в библиотеку Android.Приложение основано на одном действии, весь макет XML которого содержит только веб-просмотр, охватывающий весь экран.Пользовательский интерфейс библиотеки (на самом деле, просто веб-просмотр) теперь должен быть интегрирован в макет других приложений.Например, одно родительское приложение имеет структуру вкладок.Я хотел бы, чтобы веб-просмотр библиотеки отображался на одной из вкладок, причем вкладки всегда видны внизу экрана.Обычно я бы предпочел установить границу библиотеки приложений на уровне активности, но это не работает в этом случае - мы не можем вызвать новую активность из библиотеки, потому что она будет охватывать весь экран и вкладки вbottom.

Каков наилучший способ преобразовать это в библиотеку, чтобы она работала в структуре вкладок родительского приложения?Где должна быть граница приложения-библиотеки?Вот некоторые из моих идей:

  1. Позвольте пользователю библиотеки создать действие с пользовательским макетом, который он предпочитает (в данном случае вкладки).Убедитесь, что макет содержит веб-просмотр.Используйте findViewById, чтобы получить объект webview и передать этот объект в библиотеку для библиотеки, чтобы использовать для отображения страниц.Основным недостатком здесь является то, что некоторые части библиотеки должны подключать некоторые приемники Broadcast к родительскому действию (которое в данном сценарии не является частью библиотеки), и такое соединение кажется довольно сомнительным.

  2. Возможно, использовать фрагменты, которые были введены в Android 3.0.Тем не менее, они в основном ориентированы на планшеты.Будут ли они работать в этом случае?

  3. Есть ли другой вариант, совместимый с Android 2.1+, о котором я не знаю?

1 Ответ

0 голосов
/ 04 января 2012

Я решил использовать фрагменты, используя библиотеку совместимости.

http://developer.android.com/guide/topics/fundamentals/fragments.html
http://developer.android.com/sdk/compatibility-library.html

Фрагменты - действительно лучший выбор в этом случае, потому что:

  1. У них есть жизненный цикл, аналогичный жизненному циклу, что делает обращение простым.
  2. Это часть пользовательского интерфейса со связанной функциональностью, которая как раз и нужна в этом случае.
...