Ich brauche drei Bilderreihen, eine unter der anderen. Jede RecyclerView
, die scrollbar ist, sitzt unabhängig in jeder Zeile. Ich kam auf die Idee, drei RecyclerView
s, eine unter der anderen, und drei Adapter für die RecyclerView
s und es sieht sehr gut aus. Das einzige Problem, das ich habe, ist, dass es viel Speicher verbraucht und das Scrollen langsam ist. Ich denke, der Code ist in Ordnung und die RecyclerView
s funktionieren auch gut, aber vielleicht verpasse ich etwas oder mache etwas falsch. Hier ist meine Aktivität, die die Adapter festlegt:Drei RecyclerViews in einer Aktivität
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXXXX");
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.articles);
RecyclerView recyclerView2 = (RecyclerView) findViewById(R.id.articles2);
RecyclerView recyclerView3 = (RecyclerView) findViewById(R.id.articles3);
recyclerView.setHasFixedSize(true);
recyclerView2.setHasFixedSize(true);
recyclerView3.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView2.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView3.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
ArrayList<Article> articles = new ArrayList<>();
for (int i = 0; i < 30; ++i)
articles.add(new Article());
ArrayList<Article2> articles2 = new ArrayList<>();
for (int i = 0; i < 30; ++i)
articles2.add(new Article2());
ArrayList<Article3> articles3 = new ArrayList<>();
for (int i = 0; i < 30; ++i)
articles3.add(new Article3());
recyclerView.setAdapter(new MyAdapter(articles, recyclerView));
recyclerView2.setAdapter(new MyAdapter2(articles2, recyclerView2));
recyclerView3.setAdapter(new MyAdapter3(articles3, recyclerView3));
}
Irgendwelche Vorschläge zur Lösung der Speicherprobleme?
Vielen Dank für Ratschläge. Ich werde ziemlich viele Bilder haben, ungefähr 30 in jeder Reihe - sie sind nicht groß, aber werden zusammenfassen. Ich frage mich auch, gibt es eine andere oder bessere Möglichkeit, drei unabhängige Scroll-Ansichten in einer Aktivität und Layout zu erreichen? – Pawel
Es gibt wahrscheinlich keinen besseren Weg als solchen. Es hängt wirklich davon ab, was Sie in diesen scrollbaren Ansichten rendern. Wenn Sie nur TextView in Ihren drei Adaptern hätten, würde Ihre App schneller laufen. Es hängt wirklich davon ab, welche Elemente Sie anzeigen möchten. Denken Sie daran, dass Sie versuchen, die größtmögliche Anzahl an Geräten zu erreichen. Wenn Ihre App auf einem neuen Telefon langsam läuft, wird sie auf einem älteren Telefon garantiert langsamer ausgeführt. – Razor
Danke für den Kommentar. Ich zeige Bilder, nicht groß, aber es wird wegen seiner Menge zusammenfassen. Danke für Ihre Ratschläge und Ihre Zeit – Pawel