RecyclerView.Adapter を拡張するカスタム アダプターを使用して RecyclerView を使用しています。
実行時にTextviewでLinearLayoutを作成し、RecyclerViewの各行で膨らませています
たとえば、RecyclerView の 1 行目には実行時に作成された 2 つまたは 3 つの Textview があり、2 行目には実行時に作成された 2 つまたは 3 つの Textview があり、3 行目にはいくつかの Textview があります...など...
ログを確認すると、ほぼ完全に動作します...しかし、下にスクロールすると、テキストビューが間違った場所に配置されるだけです。つまり、間違った場所にスクロールすると、以前のテキストビューが再び取得されます
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
//Movie movie = mItems.get(i);
hm2 = new HashMap<String, ArrayList<PD_Data>>();
sub_rows2 = new ArrayList<PD_Data>();
hm2=categories.get(i);
String key=hm2.keySet().toArray()[0].toString();
sub_rows2=hm2.get(key);
Log.i(LOG_TKT,key);
viewHolder.textview_category.setText(key);
LayoutInflater inflater;
View new_sub_row;
for(int x=0;x<sub_rows2.size();x++){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
new_sub_row = inflater.inflate(R.layout.recyclerview_pd, null);
TextView heading2 = (TextView)new_sub_row.findViewById(R.id.heading2);
heading2.setText(sub_rows2.get(x).sub_heading);
Log.i(LOG_TKT,sub_rows2.get(x).sub_heading);
TextView detail2 = (TextView)new_sub_row.findViewById(R.id.detail2);
detail2.setText(sub_rows2.get(x).value);
Log.i(LOG_TKT, sub_rows2.get(x).value);
viewHolder.linearlayout_recyclerview_pd.addView(new_sub_row);
}
//viewHolder.imgThumbnail.setImageResource(movie.getThumbnail());
hm2 = new HashMap<String, ArrayList<PD_Data>>();
sub_rows2 = new ArrayList<PD_Data>();
}
私は何を間違っていますか?