我有一个 SwipeRefreshLayout,里面有一个 ListView。我还设置了 ActionBar 叠加层,基本上 ListView 的顶部与 SwipeRefreshLayout 一起位于操作栏的后面,当我触发刷新时,动画位于 ActionBar 后面,因此不可见。有任何想法吗?
3 回答
而不是在 SwipeRefreshLayout 上设置 paddingTop,设置 layout_marginTop 将使进度条可见:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize">
在 appcompat-v7 库 (v21.0.0) 的 Material Design 版本中,SwipeRefreshLayout
获取设置进度视图偏移的方法。
public void setProgressViewOffset(布尔值,int start,int end)
刷新指示器的开始和停止位置始终位于刷新内容的顶部附近。此位置是一个一致的位置,但可以根据是否存在工具栏或操作栏在任一方向上进行调整。
参数
如果没有比进度微调器设置显示的 z 顺序更高的视图,则设置为 true 。
start 距此视图顶部的偏移量(以像素为单位),进度微调器应出现在该处。
end 在成功滑动手势后进度微调器应该停止的距离此视图顶部的偏移量(以像素为单位)。
当我将依赖项从 appcompat 19.1.0 升级到 21.0.0 并且没有进行任何代码更改时,我目前遇到了这个问题。
这实际上是 appcompat 21.0.0 中 SwipeRefreshLayout 的一个已知问题。
在此处查找解决方法:https ://code.google.com/p/android/issues/detail?id=77712