请告诉我,我怎样才能像这样 swipeRefreshLayout
我的swipeRefreshLayout看起来像
我希望它看起来像一条线,而不是一个圆圈
布局:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView"/>
</LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>
代码:
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() { }
});
swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
我使用appcompat库,ActionBarActivity
答案 0 :(得分:3)
您必须使用v4 Support Library
之前的revision 21
版本。此版本中的样式已更改。如果您使用的是gradle,请使用以下内容:
compile 'com.android.support:support-v4:20.x.x'
其中x
是特定版本号。
答案 1 :(得分:0)
您有2个选项可以返回旧的SwipeRefreshLayout:
1。正如史蒂夫所说,在修订版本21之前使用v4支持库。我想它应该是v4支持库r20。您可以从谷歌的网站下载它,从旧项目获取或在build.gradle依赖项中使用正确的版本,例如
compile 'com.android.support:support-v4:20.0.0'
但在这种情况下,您将使用旧库,这可能是将来的问题。因为还有很多其他类可以提供帮助。
2。获取SwipeRefreshLayout的源代码并将其放入您的项目中。这也不是完美的解决方案,但Google员工让我们别无选择。
所以你的步骤应该是下一步:
A. 从https://dl-ssl.google.com/android/repository/support_r20.zip下载v4支持库修订版20的源代码并解压缩。
B。在项目中创建一些子包,例如com.yourpackagename.supportv4r20,并将下一个文件复制到它:
BakedBezierInterpolator.java
SwipeProgressBar.java
SwipeRefreshLayout.java
此文件位于../support/v4/src/java/android/support/v4/widget/目录中。
C. 修复SwipeProgressBar中的代码,使用SwipeProgressBar和SwipeRefreshLayout中的代码来使用SwipeProgressBar。您必须删除“import android.support.v4.widget *”并更改代码以使用包中的本地类(来自com.yourpackagename.supportv4r20)。不应该是这些类中的任何其他错误
D. 现在更改您的布局文件以使用您的包中的SwipeRefreshLayout,例如
<com.yourpackagename.supportv4r20.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
....
</com.yourpackagename.supportv4r20.SwipeRefreshLayout>
现在应该可以了。您也可以使用最新版本的v4支持库。
另一个重要的注意事项。
我们的packege中的SwipeRefreshLayout中的v4支持库仍然存在一些关系,这些是android.support.v4.view.MotionEventCompat和android.support.v4.view.ViewCompat。我没有改变代码,仍然使用它们。我检查了这个类的代码,我想我们可以“按原样”使用它。但是如果你将来遇到SwipeRefreshLayout的麻烦,那么ypu必须像我们使用SwipeRefreshLayout / SwipeProgressBar / SwipeProgressBar那样从v4支持库r20源复制所有这些文件并修复所有依赖项。
干杯!