是否可以在不显示进度旋转器的情况下执行SwipeRefreshLayout
功能。现在,它的默认行为是进行下拉刷新时,显示进度旋转器和调用onRefresh()
方法。但我希望完全隐藏它,只想使用下拉刷新功能,但不显示进度旋转器。
是否可以在不显示进度旋转器的情况下执行SwipeRefreshLayout
功能。现在,它的默认行为是进行下拉刷新时,显示进度旋转器和调用onRefresh()
方法。但我希望完全隐藏它,只想使用下拉刷新功能,但不显示进度旋转器。
经过一些研究和开发,找到了一个解决方案,可以帮助其他想要实现这种功能的人。
try {
Field f = mSwipeRefreshLayout.getClass().getDeclaredField("mCircleView");
f.setAccessible(true);
ImageView img = (ImageView)f.get(mSwipeRefreshLayout);
img.setAlpha(0.0f);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
swipeRefreshLayout.setProgressViewEndTarget(false, 0)
滑动刷新控件设置进度视图结束的目标值为0,并且不显示。除了Atakan Akar的回答之外,为了启用未来的轻扫刷新:
// Reduses spinner size to 0
swipeRefreshLayout.setProgressViewEndTarget(false, 0);
// Turns off layout refreshing status
swipeRefreshLayout.setRefreshing(false);
我不同意完全隐藏这个旋转器,但在加载开始之前隐藏它。 我的布局中有许多正在进行的UI界面.. 所以我已经做了这个:
app:refreshing="@{vm.loadingUI1 && vm.loadingUI2 && false}">
loadingUI1 是 LiveData
采用这种方法,您只需将交互式加载显示为操作,并在任何组件开始加载过程时立即隐藏它。
你可以将加载器发送离开
yourSwipeToRefresh?.setProgressViewEndTarget(true, -screenHeight)
swipe_refresh_layout.setProgressViewOffset( false, -200, -200 )