我试图在RecyclerView中显示确切的(例如3项).我们的Web应用程序显示如下:
如果我移动物品:
在Android中,我使用RecyclerView显示图像:
如何准确显示RecyclerView可见区域中的3个项目?如何避免显示"半"项目?这可能吗?
RecyclerView:
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="130dp"
android:id="@+id/rvProducts" />
Run Code Online (Sandbox Code Playgroud)
回收站视图中的一项:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:padding="10dp"
android:id="@+id/ivProduct"
android:src="@drawable/noimage"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
码:
LinearLayoutManager layoutManager
= new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
RecyclerView productImageList = (RecyclerView) view.findViewById(R.id.rvProducts);
productImageList.setLayoutManager(layoutManager);
GalleryRecyclerAdapter adapter = new GalleryRecyclerAdapter(images);
productImageList.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud) 我正在我的应用程序中创建一个水平的RecyclerView.
它必须一次在屏幕上显示2个图像(因此每个图像的宽度必须是屏幕的50%).
现在它工作正常,但每个项目占据屏幕的所有宽度.
这是我的代码
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);
Run Code Online (Sandbox Code Playgroud)
这是项目的布局
<?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>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我尝试使用Layout_gravity ="0.5",但它没有帮助.
我试图指定layout_width = ... dp,但我无法获得正好一半的屏幕.
我想在项目布局中添加另一个ImageView,但在这种情况下我会遇到适配器的麻烦,因为我想实现带圆圈(无限)的水平列表视图
这是我的适配器:
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 …Run Code Online (Sandbox Code Playgroud) 卡在这个关于RecyclerView可见项目计数的问题要求:-
RecyclerView有3+项目但是,需要显示 3 个项目(其他项目可以通过滚动到达)
RecyclerView有<=3项目,需要显示完整的项目
Recyclerview 设置适配器代码
cardoptionlist.clear();
cardoptionlist.addAll(savedcards);
cardoptionlist.add(new CardModel(true));
if (cardOptionAdapter == null) {
cardOptionAdapter = new CardOptionAdapter(getActivity(), cardoptionlist, this);
}
if (rcv_card_options.getLayoutManager() == null) {
rcv_card_options.setLayoutManager(new LinearLayoutManager(getActivity()));
}
rcv_card_options.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL, 0, false));
rcv_card_options.setItemAnimator(new DefaultItemAnimator());
rcv_card_options.setHasFixedSize(true);
rcv_card_options.setItemViewCacheSize(20);
rcv_card_options.setDrawingCacheEnabled(true);
rcv_card_options.setAdapter(cardOptionAdapter);
Run Code Online (Sandbox Code Playgroud)
Recyclerview Xml 文件
<android.support.v7.widget.RecyclerView
android:id="@+id/rcv_card_options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_white_app_color_border_8dp"
android:paddingBottom="2dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="2dp"
>
Run Code Online (Sandbox Code Playgroud)
提前致谢