Android 拉动刷新空进度(无箭头)
Android pull to refresh empty progress (no arrow)
我在我的应用程序中使用 Google 中的 SwipeContainer,代码如下:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/policeButton"
android:layout_marginTop="10dp">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView"
android:layout_alignParentEnd="true"
android:layout_below="@+id/policeButton"
android:layout_marginTop="10dp" />
</android.support.v4.widget.SwipeRefreshLayout>
在我的 Gradle 文件 (module.app) 中,我添加了以下代码:
compile 'com.android.support:support-v4:23.1.1'
在 MainActivity 中,我放置了以下代码:
private SwipeRefreshLayout swipeContainer;
protected void onCreate(Bundle savedInstanceState) {
swipeContainer = (SwipeRefreshLayout) findViewById(R.id.swipeContainer);
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
loadLights();
}
}, 2000);
}
});
swipeContainer.setColorSchemeColors(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light
);
}
下拉刷新代码有效,将更新我的列表。
但是:当刷新操作正在进行时,转向箭头没有出现。所以有一个空圆圈,刷新时出现,完成loadLights()
后会隐藏,因为我在那里添加了swipeContainer.setRefreshing(false);
。
有人知道如何显示转向箭头吗?
问题是 setColorSchemeColors()
像 Color.BLUE
一样需要颜色整数作为输入,而不是颜色资源 ID。
所以要显示箭头的颜色代码应该是这样的:
swipeRefreshLayout.setColorSchemeColors(Color.BLACK,
Color.BLUE,
Color.GREEN,
Color.GRAY
);
设置颜色资源 ID 的代码应如下所示:
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
);
我在我的应用程序中使用 Google 中的 SwipeContainer,代码如下:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/policeButton"
android:layout_marginTop="10dp">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView"
android:layout_alignParentEnd="true"
android:layout_below="@+id/policeButton"
android:layout_marginTop="10dp" />
</android.support.v4.widget.SwipeRefreshLayout>
在我的 Gradle 文件 (module.app) 中,我添加了以下代码:
compile 'com.android.support:support-v4:23.1.1'
在 MainActivity 中,我放置了以下代码:
private SwipeRefreshLayout swipeContainer;
protected void onCreate(Bundle savedInstanceState) {
swipeContainer = (SwipeRefreshLayout) findViewById(R.id.swipeContainer);
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
loadLights();
}
}, 2000);
}
});
swipeContainer.setColorSchemeColors(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light
);
}
下拉刷新代码有效,将更新我的列表。
但是:当刷新操作正在进行时,转向箭头没有出现。所以有一个空圆圈,刷新时出现,完成loadLights()
后会隐藏,因为我在那里添加了swipeContainer.setRefreshing(false);
。
有人知道如何显示转向箭头吗?
问题是 setColorSchemeColors()
像 Color.BLUE
一样需要颜色整数作为输入,而不是颜色资源 ID。
所以要显示箭头的颜色代码应该是这样的:
swipeRefreshLayout.setColorSchemeColors(Color.BLACK,
Color.BLUE,
Color.GREEN,
Color.GRAY
);
设置颜色资源 ID 的代码应如下所示:
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
);