gpt4 book ai didi

android - 在 android 2.2 中的任何地方使用 RecyclerView 刷新滚动 SwipeRefreshLayout

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:16 25 4
gpt4 key购买 nike

我的布局有问题,我在里面创建了带有 RecyclerView 的 SwipeRefreshLayout。在 android 4.2.2+ 中一切正常,但在 andorid 2.3.4 中我无法向上滚动,因为在 RecyclerView 的任何地方它都会刷新,我必须向下滚动然后向上滚动。

这是我的代码:

<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/forum_swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LVP"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center" />
</android.support.v4.widget.SwipeRefreshLayout>

我发现了这个问题:https://code.google.com/p/android/issues/detail?id=78191但没有解决办法。知道如何解决吗?

最佳答案

覆盖 RecyclerView 的方法 OnScrollStateChanged

 mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {

@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
// TODO Auto-generated method stub
//super.onScrollStateChanged(recyclerView, newState);
try {
int firstPos = mLayoutManager.findFirstCompletelyVisibleItemPosition();
if (firstPos > 0) {
mSwipeRefreshLayout.setEnabled(false);
} else {
mSwipeRefreshLayout.setEnabled(true);
if(mRecyclerView.getScrollState() == 1)
if(mSwipeRefreshLayout.isRefreshing())
mRecyclerView.stopScroll();
}

}catch(Exception e) {
Log.e(TAG, "Scroll Error : "+e.getLocalizedMessage());
}
}

检查滑动刷新是否正在刷新并尝试向上滚动然后你得到错误,所以当滑动刷新正在进行时我尝试这样做 mRecyclerView.stopScroll();

关于android - 在 android 2.2 中的任何地方使用 RecyclerView 刷新滚动 SwipeRefreshLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27641359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com