RecyclerViewでアルファベット順にリストを表示しています。 各文字グループは、各グループの先頭に1文字ずつ左側に表示されます。 分割線はItemDecoratorでレンダリングされます。テキストを設定し、RecyclerViewで条件付きでTextViewを表示する
私はonBindViewHolderでこれを解決しようとしています。 最初のレイアウトは問題なく動作します。私がトップからボトムまでスクロールすると、すべてが期待どおりになります。 しかし、私が最初の/大文字を失って行くか、それが再配列されたバックアップをスクロールします。
バックKまでスクロールした後、この例では欠けている、::予想通り
は条件付きで頭文字を示しているスクロールダウンする
public void onBindViewHolder(WordItemViewHolder wordItemViewHolder, final int position) {
final WordModel wordModel = wordModels.get(position);
wordItemViewHolder.textView.setText(wordModel.getWord());
String word = wordModel.getWord();
String currentFirstLetter = word.substring(0,1);
if(maxListRendered <= position){
if(!previousLetter.contentEquals(currentFirstLetter) || position == 0){
wordItemViewHolder.initialView.setText(currentFirstLetter.toUpperCase());
wordItemViewHolder.initialView.setVisibility(View.VISIBLE);
previousLetter = currentFirstLetter;
}else{
wordItemViewHolder.initialView.setVisibility(View.INVISIBLE);
}
}
maxListRendered++;//initialised as 0 in attempt to track calls to onBindViewHolder
}
すべてのヘルプありがとう、ありがとう。
ありがとう:) getItemViewTypeをオーバーライドすることは、同じ問題(私は完全にonBindViewHolderにロジックをダンプしました)に遭遇する可能性のある人にとって、これを動作させる鍵でした。 – Brian