【发布时间】:2016-03-23 20:15:05
【问题描述】:
我在水平回收器视图中滚动时遇到问题。例如,如果我有 10 个项目,第一次,我可以滚动到最后一个项目,但是如果我转到第一个项目,然后再次滚动到最后一个项目,那就是不移动到最后一项。
这个问题是否与滚动有关,如果是这种情况,我是否应该覆盖滚动。
这是我的片段类声明
LinearLayoutManager layoutManager
= new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
mRecyclerView = (RecyclerView)v. findViewById(R.id.recycler_view);
adapter = new MyRecyclerAdapter(getActivity());
mRecyclerView.setLayoutManager(layoutManager);
mRecyclerView.setAdapter(adapter);
在我的适配器中
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.CustomViewHolder> {
private Context mContext;
JobSiteActivity mjobSiteActivity;
ImageLoader loader = null;
public MyRecyclerAdapter(Activity activity) {
this.mContext = activity;
mjobSiteActivity = (JobSiteActivity)activity;
loader = mjobSiteActivity.getImageLoader();
}
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.image_detail_fragment, null);
CustomViewHolder viewHolder = new CustomViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(CustomViewHolder customViewHolder, int i) {
//FeedItem feedItem = feedItemList.get(i);
//Download image using picasso library
/* Picasso.with(mContext).load(feedItem.getThumbnail())
.error(R.drawable.placeholder)
.placeholder(R.drawable.placeholder)
.into(customViewHolder.imageView);*/
customViewHolder.imageView.setImageUrl(Images.imageThumbUrls[i], loader);
customViewHolder.imageView.setOnClickListener(clickListener);
customViewHolder.imageView.setTag(customViewHolder);
//Setting text view title
}
@Override
public int getItemCount() {
//return (null != feedItemList ? feedItemList.size() : 0);
return Images.imageThumbUrls.length;
}
public class CustomViewHolder extends RecyclerView.ViewHolder {
protected NetworkImageView imageView;
public CustomViewHolder(View view) {
super(view);
this.imageView = (NetworkImageView) view.findViewById(R.id.imageView);
}
}
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
CustomViewHolder holder = (CustomViewHolder) view.getTag();
int position = holder.getLayoutPosition();
int position1 = holder.getAdapterPosition();
Toast.makeText(mContext, "layoutPs"+position+"adapPos"+position, Toast.LENGTH_SHORT).show();
}
};
}
我正在尝试使用 V17 Leanback 附带的水平网格视图,它也扩展了 recycleView,但我仍然面临类似的问题,
如果我尝试在运行时将任何项目添加到回收站视图中,例如在拍照时,它也没有被添加,它分配空间并且它是空的?在这个问题上很难理解或调试。
【问题讨论】:
-
这可能是您的适配器的问题。如果没有您的代码,几乎不可能给出答案。
-
我已经更新了代码,我错过了什么
-
感谢您的帮助。在我的 Volley 库的 NetworkImageView 的情况下,通过将预定义的宽度和高度各为 100 dp 给子视图,问题得到部分解决。而不是提供包装内容或匹配父级,给出预定义的宽度和高度对我有用:),不是一个正确的解决方案,但水平GridView(LeanBack Library)问题仍然存在
-
@Rakesh 布局的 xml 在哪里?
标签: android horizontal-scrolling android-recyclerview