0
このスレッドを読む貴重な時間をいただきありがとうございます。 私は、recyclerviewのアイテム内にrecyclerviewがあるところにアンドロイドアプリを開発しています。スクロールでrecyclerviewのトップアイテムを取得する方法
recyclerview(parent recyclerview)が親の最初のアイテムの上の位置に達するとき(つまり、最初のアイテムの上の位置が完全に見える場合)に、何らかのタスクを実行したいと思います。
私はこれまでのところ、これを試してみたが、それは、私はあなたが必要なものをアーカイブすることができ、これらの方法の2つの組み合わせを使用することにより
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager linearLayoutManager1 = (LinearLayoutManager) recyclerView.getLayoutManager();
int displayedPosition = linearLayoutManager1.findFirstCompletelyVisibleItemPosition();
if(displayedPosition==0){
//Is this the place where top position of first item is reached ?
((ControllableAppBarLayout) getActivity().findViewById(R.id.app_bar_layout)).expandToolbar(true);
}
}
});
のinstanceofチェックコードが正しく見えます。あなたはそれをテストしましたか?ちなみに、 'dy == 0'ならテストしないのはなぜですか?それはあなたに同じ結果を与えるでしょう。 – Shai
私はログを印刷しましたが、印刷されたログを見ることはできません:( –
このコードは単純なrecyclerviewのためにうまくいきますが、入れ子にされたrecylerviewでは機能しません。 –