在片段中实施recyclerview

时间:2016-05-04 13:51:54

标签: java android android-recyclerview

我在片段中创建了一个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的信息改变做滚动

3 个答案:

答案 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。 其次,你对属性无意义的改变是什么意思 最后:我不太欣赏使用这样的视图和适配器,

http://javatechig.com/android/android-recyclerview-example

答案 2 :(得分:0)

解决。

问题出在回收器上,而viewHolder都是静态类。