写真のように2つのrecyclerViewを接続しています。それらのrecyclerviewアダプタでまだ表示されていないレイアウトマネージャの子を取得するにはどうすればよいですか?
つのヘッダとrecyclerView区画されています。 (下のもの)
もう1つは、下のもののヘッダーをタブとして示すrecyclerViewです。私は動的にRetrofit
でそれらのためのデータセットを取得し、私は下の1をスクロールして一番上の項目をハイライトしたい
それらを個別に設定する
(一番上)。スクロールが正常に終了し、bottomのrecyclerViewがスクロールしてそのヘッダー位置に到達すると、トップのrecyclerViewがその特定の位置に移動します。今私がその位置にスクロールすると、そのことを強調したいと思います。
選択したとき、私は変更する項目の色をxmlファイルを使用し:クリックして、それは素晴らしい作品際
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/chooseCAndZ" android:state_selected="true"/>
<item android:drawable="@color/colorAccent" android:state_focused="true"/>
</selector>
をし、変更のためのトップrecyclerViewの色を下記の仕事をする:
@Override
public void onBindViewHolder(final FoodTopMenuAdapter.ViewHolder holder, int position) {
holder.mView.setSelected(selectedPos == holder.getAdapterPosition());
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer index = inList.get(holder.getAdapterPosition());
linearLayoutManager.scrollToPosition(index);
if (holder.getAdapterPosition() == RecyclerView.NO_POSITION) return;
notifyItemChanged(selectedPos);
selectedPos = holder.getAdapterPosition();
notifyItemChanged(selectedPos);
}
});
}
index = inList.get(vheader.getHeaderCategory());
foodRVLayoutManager.scrollToPosition(index);
:
も下recyclerView onBindViewHolder
内の特定の位置にスクロールするため、この仕事をします
foodRVLayoutManager.getChildAt(i).setSelected(true);
から特定のビューを取得して、ビューの色をselected
に変更することが考えられます。
が、主な問題は、これらは以下のとおりです。
**
foodRVLayoutManager
だけで表示されている子どもたちを得ることができます!それは、色を変えることは目に見える子供のために働くことを意味します。**
onClick
とscrollToPosition
が互いに干渉します。
まだ表示されていない=合計アイテム - 現在表示されています。それはあなたが欲しいものですか? – ADM
@ADMすべてのホルダービューにアクセスしたいだけです。しかし、私はまだ位置で表示されていないビューを取得しようとすると、私はエラーが発生しました。 – MHSFisher