我在包含列表视图的布局中使用滑动刷新。面临的问题是,当我向下滚动列表时,它可以正常但是当向上滚动列表时,它会调用刷新方法。所以无法访问列表视图中的上层项目
那么我怎么做到只有在列表视图向上滚动后才能完全刷新?我尝试在启动时放置android.support.v4.widget.SwipeRefreshLayout。提前谢谢!
答案 0 :(得分:0)
您可以对SwipeRefreshLayout
进行子搜索,并为canChildScrollUp
提供合适的实现,以检查您的ListView是否到达(其第一个子项是完全可见的),然后在您的布局中使用它。 E.g。
public class MySwipeRefreshLayout extends SwipeRefreshLayout {
private AbsListView mTargetView;
public MySwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean canChildScrollUp() {
if (getChildCount() == 0) {
return true;
}
if (mTargetView == null) {
if (!(getChildAt(0) instanceof AbsListView)) {
return true;
}
mTargetView = (AbsListView) getChildAt(0);
}
if (mTargetView.getChildCount() > 0 && mTargetView.getFirstVisiblePosition() == 0) {
return mTargetView.getChildAt(0).getTop() > 0;
}
return true;
}
}
您可以根据具体用例进行调整。