我在片段中创建了一个recyclerView。一切顺利,但当我在元素列表中滚动时,属性会无缘无故地改变
以下是片段的代码:
public class HistorySectionFragment extends Fragment {
private static final String TAG = HistorySectionFragment.class.getSimpleName();
static ArrayList<String> a;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
ContentAdapter adapter = new ContentAdapter();
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
static TextView card_title;
static TextView card_text;
public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.item_card, parent, false));
card_title = (TextView)itemView.findViewById(R.id.card_title);
card_text = (TextView)itemView.findViewById(R.id.card_text);
}
}
public static class ContentAdapter extends RecyclerView.Adapter<ViewHolder>{
// Set numbers of Card in RecyclerView.
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()), parent);
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
final String name = MainActivity.getTestByPosition(position).getName();
holder.card_title.setText(name);
final String description = MainActivity.getTestByPosition(position).getDescription();
holder.card_text.setText(description);
}
@Override
public int getItemCount() {
return MainActivity.getSize();
}
}
}
问题在于recyclerview要求创建新元素。
编辑:
当我说属性改变时,我的意思是每个cardView的信息改变做滚动
答案 0 :(得分:0)
我感觉您的RecyclerView中的视图不稳定。当视图被回收时,ID将被保存并且数据不匹配。
尝试这样做。
head(Preds)
fit upr lwr
1 0.1860053 0.2482220 0.1427370
2 0.1860058 0.2482226 0.1427373
3 0.1860062 0.2482231 0.1427377
4 0.1860066 0.2482237 0.1427380
5 0.1860071 0.2482242 0.1427384
6 0.1860075 0.2482248 0.1427388
答案 1 :(得分:0)
首先,您为什么使用inflater进行Recyclerview?最好的方法是在xml文件中声明您的recyclerview并通过findviewById获取recyclerview。 其次,你对属性无意义的改变是什么意思 最后:我不太欣赏使用这样的视图和适配器,
答案 2 :(得分:0)
解决。
问题出在回收器上,而viewHolder都是静态类。