Ich erstelle eine horizontale RecyclerView in meiner App.
Es müssen 2 Bilder gleichzeitig auf dem Bildschirm angezeigt werden (die Breite jedes Bildes muss also 50% des Bildschirms betragen).
Für jetzt funktioniert es gut, aber jeder Artikel umfasst die gesamte Breite des Bildschirms.RecyclerView Anzahl der sichtbaren Elemente
Hier ist mein Code
mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_main_ads);
LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(getActivity());
mLinearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(tmp, R.layout.lv_main_screen);
mRecyclerView.setAdapter(adapter);
Hier ist das Layout eines Artikels
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<ImageView
android:id="@+id/iv_main_ad"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:scaleType="fitXY"
android:src="@drawable/baner_gasoline"
/>
</LinearLayout>
Wie man sehen kann ich versuchte Layout_gravity = "0.5" zu verwenden, Aber es hilft nicht.
Ich habe versucht, layout_width = ... dp angeben, aber ich kann nicht genau die Hälfte des Bildschirms bekommen.
die ich denke ein anderes Image in Artikel Layout hinzufügen, aber in diesem Fall muss ich Probleme mit dem Adapter, weil ich eingekreisten (unendlich) horizontal Listenansicht
hier ist mein Adapter implemnt wollen:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyHolder> {
private List<Integer> mImages;
private int itemLayout;
public RecyclerViewAdapter(ArrayList<Integer> imageResourceIds, int itemLayout) {
this.mImages = imageResourceIds;
this.itemLayout = itemLayout;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false);
return new MyHolder(v);
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.adIv.setImageResource(mImages.get(position));
}
@Override
public int getItemCount() {
return mImages.size();
}
public static class MyHolder extends RecyclerView.ViewHolder {
protected ImageView adIv;
private MyHolder(View v) {
super(v);
this.adIv = (ImageView) v.findViewById(R.id.iv_main_ad);
}
}
}
"jeder Artikel enthält die gesamte Breite des Bildschirms". "Hier ist Layout eines Artikels" -> 'android: layout_width =" match_parent "' –
Berechnen Sie die Breite des Bildschirms und legen Sie die maximale Anzahl Element, das Sie überprüfen möchten ans –
@Pedro Oliveira, versuchte ich Wrap_Content, aber es ändert nichts – Androider