2016-06-04 14 views
1

Ich möchte ein Widget anzeigen, das ein bereits funktionierendes Fragment in den Widget-Bereich lädt. Ich kann jedoch keine Dokumentation finden, die das Laden von Fragmenten in ein Widget behandelt? Kann mir jemand helfen?Ein Fragment in einem Android-Widget anzeigen

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) 
} 
} 

Wie gehe ich vor, um das Fragment in das remoteView zu laden?

Antwort

0

Zunächst einmal überprüfen Sie bitte diese Dokumentation: https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

Dieser Abschnitt genauer erklärt, was ein Widget-Layout verwenden könnte, ist es eine Liste mit allen verfügbaren Layout-Klassen und Widget-Klassen zur Verfügung stellt. Wenn etwas, das nicht auf der Liste ist, funktioniert es nicht auf einem Widget.

Wenn Sie in der Klasse Quelldatei graben könnten, sollten einige von ihnen sehen - @RemoteView am Anfang, das bedeutet, die Klasse ist gut für Widget; Wenn eine Klasse diese Markierung nicht besitzt, bedeutet dies, dass sie nicht im Widget verwendet werden kann.