我正在Activity内的Fragment中使用SwipeRefreshLayout。当我向下滑动但第一次Fragment创建并加载数据时,它工作正常。它只有一个没有动画加载箭头的空白圆圈,如下所示:
我的代码显示SwipeRefreshLayout:
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.item_order_fragment, container, false);
ButterKnife.bind(this, v);
mSwipeRefreshLayout.setOnRefreshListener(this);
mSwipeRefreshLayout.setColorSchemeResources(R.color.startColorPrimary,
R.color.color_tab_selected,
R.color.endColorPrimary);
mSwipeRefreshLayout.setRefreshing(true);
return v;
}
@Override
public void onRefresh() {
// Fetching data from server
}
我的xml布局:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/tv_order_status_explain"
android:background="@android:color/transparent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview_orders"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
tools:listitem="@layout/item_customer_order" />
</android.support.v4.widget.SwipeRefreshLayout>
我已经尝试了SwipeRefreshLayout setRefreshing() not showing indicator initially中的所有解决方案,但没有任何效果。 有人可以帮我吗?
答案 0 :(得分:0)
问题在于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
);
答案 1 :(得分:0)
尝试一下:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_order_status_explain">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview_orders"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
tools:listitem="@layout/item_customer_order" />
</android.support.v4.widget.SwipeRefreshLayout>
并在java类中执行此操作:
mSwipeRefreshLayout.setColorSchemeResources(R.color.orange, R.color.green, R.color.blue);
mSwipeRefreshLayout.setOnRefreshListener(this);
并在color.xml中执行此操作:
<color name="orange">#FF9900</color>
<color name="green">#009900</color>
<color name="blue">#000099</color>
答案 2 :(得分:0)
我认为您的强调色是白色,并且还有圈背景也是白色的,为什么不可见,请尝试从value / color.xml文件的文件夹中进行更改。有ColourAccent更改它。应该可以。!