findFirstVisibleItemPosition () возвращает 0 внутри nestedScrollView - PullRequest
0 голосов
/ 01 мая 2020

У меня есть recyclerView внутри nestedScrollView. Я знаю, что это плохая практика, но в некоторых случаях я могу справиться только таким способом.

<androidx.core.widget.NestedScrollView
    android:id="@+id/nestedScroll"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_data"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            tools:itemCount="1"
            tools:listitem="@layout/item_favorite_tournament"
            tools:visibility="visible" />

</androidx.core.widget.NestedScrollView>

А вот мой код. Я покажу вам часть свитка, где мне нужно получить firstVisibleItemPosition. Но он возвращает 0.

private void initList(RecyclerView recycler, View labelNoResults) {
    recycler.setAdapter(mAdapter);
    recycler.setHasFixedSize(true);
    mListLayoutManager = Objects.requireNonNull((LinearLayoutManager) recycler.getLayoutManager());


    recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            final int p = mListLayoutManager.findFirstVisibleItemPosition();
            Log.d("Tag_1", "Position: " + p);
        }
    });
}

Я думаю, что проблема из-за nestedScrollView. Итак, как я могу получить форму visibleItemPosition recyclerView? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...