があり、RecyclerView
その項目をクリックすると新しい が表示されActivity
ます。ViewPager
複数の商品がございます。押し戻すと、現在のアイテムの位置が保存されます。私がやりたいことは、ユーザーが のアイテムの上に立って押し戻すとViewPager
、そのアイテムが で強調表示されるはずRecyclerView
です。
問題
アイテムの位置が見えていれば問題ありません。以下を使用して背景を変更します
view = layoutManager.findViewByPosition(Utils.ayat);
if(view != null) {
LinearLayout parent = (LinearLayout) view.findViewById(R.id.parent);
parent.setBackgroundColor(Color.GRAY);
}
しかし、アイテムが表示されていない場合、何も起こらず、背景を変更できません。
これまでに行ったこと
- 位置までスクロールしてから背景を変更しようとしました。
RecyclerView
正しくスクロールしていますが、findViewByPosition
null を返します。 - 私の観察から(間違っている可能性があります)、プログラムでスクロールすると、スクロール
RecyclerView
された位置が最後に表示されるアイテムになると思います。私はそれをやろうとしましたが、運がありませんでした。 - 多くの人が示唆しているように、置い
Thread.sleep(100)
てから位置を取得しようとしました。これもうまくいきませんでした。
注:onBindViewHolder
強調表示される項目が事前に定義されていないため、これを行うことはできません。