Ich habe einfache Aufgabe, aber ich verstehe nicht, warum es nicht funktioniert. Ich muss images
in einem GridView
platzieren. Ich entschied mich für die RecyclerView
. So habe ich einige, wo ich es aufgegeben habe:RecyclerView wird überhaupt nicht aktualisiert
<LinearLayout
..>
...
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ebebeb">
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view1"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</LinearLayout>
In meinem Activity
Ich erkläre:
images = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view1);
adapter = new ImageGridAdapter(Place.this, images);
manager = new GridLayoutManager(this, 3);
recyclerView.addItemDecoration(new GridSpacingItemDecoration(3, 8, true)); // for grid with equal spacing
recyclerView.setLayoutManager(manager);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
Wenn alle meine views
und objects
initialisiert werden, indem Retrofit2
I-Daten und versuchen, Adapter zu aktualisieren , zuvor erstellt.
@Override
public void onResponse(Call<PlaceModel> call, Response<PlaceModel> response) {
placeProperties = response.body().getData();
images = placeProperties.getPhotos();
System.out.println("size = " + images.size());
handler.post(new Runnable() {
@Override
public void run() {
updateUI(placeProperties);
images.clear();
images.addAll(placeProperties.getPhotos());
adapter.notifyItemChanged(0, images.size());
//just adapter.notifyDataSetChanged(); also doesn't give result;
}
});
}
Dennoch meine updateUI
Methode funktioniert gut, und Updates Ansichten mit Daten aus placeProperties
Objekt. Und die image.size()>1
.
Hier ist eine Adapter
Klasse. https://gist.github.com/burnix/aa27efe9586213852c108f3d79f3f69d
Gemäß den Protokollen funktioniert meine onBindViewHolder
Methode nicht.
Was habe ich vermisst? Warum zeigt meine RecyclerView kein Bild?
P.S. Ich habe jede ähnliche Frage gelesen und das hilft nicht. Hoffe, ich bin nur müde und vernachlässige etwas sehr einfaches ...
Versuchen Sie diese Zeile in onResponse Kommentierung aus(): '// Bilder = placeProperties.getPhotos();' –
@DanielNugent, du bist so klug und aufmerksam! Es ist Arbeit;) –