2016-06-04 4 views
1

Я хочу показать виджет, который загружает уже работающий фрагмент в пространстве виджетов. Кажется, я не могу найти документацию, которая обрабатывает фрагменты в виде виджета? Может кто-нибудь мне помочь?Показать фрагмент в виджетах android

widget_current.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
<fragment android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/widgetCurrent" /> 
</LinearLayout> 

widget_provider.xml

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
       android:minWidth="40dp" 
       android:minHeight="40dp" 
       android:updatePeriodMillis="86400000" 
       android:initialLayout="@layout/widget_current" 
       android:resizeMode="horizontal|vertical" 
       android:widgetCategory="home_screen"> 
</appwidget-provider> 

UpcomingEventWidgets.kt

class UpcomingEventsWidget: AppWidgetProvider() { 
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { 
    super.onUpdate(context, appWidgetManager, appWidgetIds) 

    val remoteView = RemoteViews(context.packageName, R.layout.widget_current) 

    appWidgetManager.updateAppWidget(appWidgetIds, remoteView) 
} 
} 

Как мне загрузить фрагмент в remoteView?

ответ

0

Прежде всего, пожалуйста, ознакомьтесь с этой документацией: https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

Этот раздел специально объяснил, что макет виджета можно использовать, это дает вам список всех доступных классов компоновки виджетов и классов. Если что-то не в списке, оно не будет работать на виджетах.

Если вы можете вставить туда исходный файл класса, некоторые из них вы должны увидеть - @RemoteView в начале, это означает, что класс хорош для виджета; если класс не имеет этого знака, значит, вы не можете использовать его в виджетах.

Смежные вопросы