Tworzę horicon Horizontal RecyclerView w mojej aplikacji.
Musi wyświetlać 2 obrazy na ekranie w tym samym czasie (aby szerokość każdego obrazu wynosiła 50% ekranu).
Na razie działa dobrze, ale każdy przedmiot zużywa całą szerokość ekranu.RecyclerView liczba widocznych elementów
Oto mój kod
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);
Oto układ elementu
<?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>
Jak widać starałem się używać Layout_gravity = "0.5", Ale to nie pomaga.
Próbowałem określić layout_width = ... dp, ale nie mogę uzyskać dokładnie połowy ekranu.
myślę o dodanie kolejnego ImageView do układu elementu, ale w tym przypadku będę miał kłopoty z adapterem, bo chcę implemnt kółkiem (nieskończoność) poziomą ListView
tutaj jest mój adapter:
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);
}
}
}
"każda pozycja zużywa całą szerokość ekranu". "Oto układ elementu" -> "android: layout_width =" match_parent "' –
Oblicz szerokość ekranu i ustaw maksymalną liczbę elementów, które chcesz sprawdzić. –
@Pedro Oliveira, próbowałem wrap_content, ale to nic nie zmienia – Androider