SwipeRefreshLayout与Actionbar重叠,动画在Actionbar后面。

3

我有一个SwipeRefreshLayout,里面有一个ListView。同时我设置了ActionBar覆盖,基本上ListView的顶部位于ActionBar的后面,包括SwipeRefreshLayout在内,当我触发刷新时,动画在ActionBar后面,因此不可见。有什么好的想法吗?


1
看一下这个:https://dev59.com/22Af5IYBdhLWcg3wqEHp - Naroh
3个回答

1

不需要在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">

1
在Material Design版本的appcompat-v7库(v21.0.0)中,SwipeRefreshLayout获得了一个设置进度视图偏移量的方法。

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#setProgressViewOffset(boolean,%20int,%20int)

public void setProgressViewOffset (boolean scale, int start, int end) 刷新指示器的起始和休息位置始终位于刷新内容的顶部附近。该位置是一个一致的位置,但可以根据是否存在工具栏或操作栏在任一方向上进行调整。 参数 scale 如果在进度旋转器设置为出现的位置上方没有视图,则设置为true。 start 进度旋转器应出现的此视图顶部的像素偏移量。 end 在成功滑动手势后,进度旋转器应停止的此视图顶部的像素偏移量。

0

我最近在将我的依赖从appcompat 19.1.0升级到21.0.0时遇到了这个问题,并没有进行任何代码更改。

实际上,这是appcompat 21.0.0中SwipeRefreshLayout已知的问题。

在此处查看解决方法:https://code.google.com/p/android/issues/detail?id=77712


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接