gpt4 book ai didi

android - SwipeRefreshLayout 拉取多次行为(SDK 23)

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

我有这样的SwipeRefreshLayout:

.xml:

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

<android.support.v7.widget.RecyclerView
android:id="@+id/haberRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>

.java:

private SwipeRefreshLayout swipeLayout;
swipeLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.swipe_refresh_layout);
swipeLayout.setColorSchemeColors(getResources().getColor(R.color.primary_color));
swipeLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
refreshContent();
}
});

这让我可以拉 swipeRefresh 多次 并且循环动画变得很奇怪,有时它会停留在屏幕上而不循环:

enter image description here

在第一次拉动时它看起来有点在上面,在第二次拉动时它下降了一点,就像图像上一样。

如何在 SwipeRefresh 已经刷新时禁用多次拉动?我想这不会发生在 sdk 23 以下。我正在使用 buildTool 23、targetSdk 23、support-v4:23、appcompat-v7:23。

更新:如果我使用 ListView 而不是 RecyclerView,则不会发生这种情况。

最佳答案

这个问题是在 support-v4 23.0.0 中引入的,是由于新的嵌套滚动功能没有检查 isRefreshing() 是否存在。

您应该扩展 SwipeRefreshLayout 并覆盖 onStartNestedScroll 函数:

@Override
public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
return !isRefreshing() && super.onStartNestedScroll(child, target, nestedScrollAxes);
}

关于android - SwipeRefreshLayout 拉取多次行为(SDK 23),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32452217/

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