-1

写真のように2つのrecyclerViewを接続しています。それらのrecyclerviewアダプタでまだ表示されていないレイアウトマネージャの子を取得するにはどうすればよいですか?

the image

つのヘッダと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だけで表示されている子どもたちを得ることができます!それは、色を変えることは目に見える子供のために働くことを意味します。

** onClickscrollToPositionが互いに干渉します。

+0

まだ表示されていない=合計アイテム - 現在表示されています。それはあなたが欲しいものですか? – ADM

+0

@ADMすべてのホルダービューにアクセスしたいだけです。しかし、私はまだ位置で表示されていないビューを取得しようとすると、私はエラーが発生しました。 – MHSFisher

答えて

0

最終的に私はちょうどを設定することにより、 foodRVLayoutManager.scrollToPositionWithOffset(index, 3);

foodRVLayoutManager.scrollToPosition(index); を変更することで問題を解決したが、不可視の項目がハイライトの前に見えるようになり、を相殺しました。

関連する問題