【发布时间】:2016-11-08 12:10:07
【问题描述】:
我刚刚为我的Android Application 完成了我的RecyclerView,但是在测试它时,我发现了一个我不明白的奇怪错误。当活动启动时,Recycler 视图中的项目以正确的距离很好地定位在RecyclerView 中。但是,一旦我开始滚动,它们就会彼此分开,直到一次只能看到一个项目,并且您必须将 distance almost equivalent 滚动到屏幕上才能看到下一个项目。
这是错误的样子:
在活动午餐上滚动之前
滚动回收视图后
如果您知道可能导致此问题的原因,我们将不胜感激。
这是活动中的 RecyclerView 代码:
private ArrayList<String> imagesUrlListThumb, imagesUrlListFull = new ArrayList<String>();
private RecyclerAdapter recyclerAdapter;
private String urlRecyclerThumb = "";
private RecyclerView recyclerView;
private ImageView imgCurRecyclerView;
imagesUrlListThumb = produit.getImgUrlThumbMul();
recyclerAdapter = new RecyclerAdapter(getApplicationContext(), imagesUrlListThumb);
recyclerView = (RecyclerView) findViewById(R.id.content_product_detail_recycer_view);
RecyclerView.LayoutManager recyclerLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(recyclerLayoutManager);
recyclerView.setAdapter(recyclerAdapter);
urlRecyclerThumb = imagesUrlListThumb.get(0);
RecyclerItemClickSupport.addTo(recyclerView).setOnItemClickListener(new RecyclerItemClickSupport.OnItemClickListener() {
@Override
public void onItemClicked(RecyclerView rv, int pos, View view) {
urlRecyclerThumb = imagesUrlListThumb.get(pos);
Picasso.with(getApplicationContext()).load(urlRecyclerThumb).fit().into(imgCurRecyclerView);
}
});
回收器适配器:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>{
private List<String> urlThumbImg;
private Context context;
public RecyclerAdapter(Context ctx, List<String> urls){
this.urlThumbImg = urls;
this.context = ctx;
}
@Override
public RecyclerAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_slideshow, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(RecyclerAdapter.MyViewHolder holder, int position){
String current = urlThumbImg.get(position);
Picasso.with(context).load(current).fit().into(holder.myImgView);
}
@Override
public int getItemCount(){
return urlThumbImg.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView myImgView;
public MyViewHolder(View view){
super(view);
myImgView = (ImageView) view.findViewById(R.id.imageView_slide);
}
}
}
这是我关于回收站视图的 xml 布局:
<!-- RECYCLER VIEW -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp"
android:orientation="vertical">
<ImageView
android:id="@+id/content_product_detail_recycer_view_cur_image"
android:layout_width="150dp"
android:layout_height="130dp"
android:layout_gravity="center"
android:background="@android:color/black" />
<android.support.v7.widget.RecyclerView
android:id="@+id/content_product_detail_recycer_view"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_margin="5dp"
android:background="@android:color/darker_gray">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
recyclerview 中项目的布局:
<?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="match_parent">
<ImageView
android:id="@+id/imageView_slide"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="5dp"
android:background="@android:color/darker_gray" />
【问题讨论】:
-
你的回收站查看代码?
-
为您在recyclerview中的项目提供布局和recyclerview代码
-
@AhmadAlsanie 我已经添加了我的问题的代码
-
@Kushan 我已经添加了我的问题的代码
-
@Adamouization RecyclerView buddy 中项目的布局。
标签: java android xml android-studio android-recyclerview