Ich probiere die neue RecyclerView
in Kombination mit der Standardimplementierung der LayoutManager
die LinearLayoutManager
. Mein Ziel ist es, die LayoutManager
meine Artikel horizontal zu zeichnen, wenn das Gerät im Hochformat ist und sie vertikal zu zeichnen, wenn das Gerät im Querformat ist. Dazu verwende ich den folgenden Code in meiner Tätigkeit des onCreate
:LinearLayoutManager setOrientation nach Telefonrotation funktioniert nicht
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.nextColors);
recyclerView.setAdapter(myAdapter = new MyAdapter(getBaseContext(), myData, myLayout);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
linearLayoutManager.setOrientation(LinearLayout.HORIZONTAL);
} else {
linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
}
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
Dies funktioniert gut, wenn ich die Aktivität, während sich das Gerät im Hoch- oder Querformat-Modus zu starten. Aber wenn ich die Ausrichtung in dieser Aktivität ändere, werden die Objekte immer horizontal oder vertikal gezeichnet, abhängig von der Ausrichtung des Geräts beim ersten Start der Aktivität. Das macht für mich keinen Sinn, da nach der Gerätedrehung die Aktivität neu erstellt wird und die LayoutManager
die richtige Ausrichtung annimmt.
Hat jemand eine Idee, wie setOrientation
Arbeit mit Geräteausrichtung Änderungen vorzunehmen?
Sie haben nicht genügend Code gezeigt, um Ihr Problem diagnostizieren zu können. Zeigen Sie den Code an, mit dem Sie Ihr Layout erstellen. – Squonk
Was meinst du? Der Adapter unterstützt den RecyclerView? – Joris
@Squonk Ich habe mehr Code über die Recyclerview und den Adapter hinzugefügt. – Joris