SwipeRefreshLayout指标没有加载圆圈箭头

时间:2018-12-07 03:38:23

标签: android swiperefreshlayout

我正在Activity内的Fragment中使用SwipeRefreshLayout。当我向下滑动但第一次Fragment创建并加载数据时,它工作正常。它只有一个没有动画加载箭头的空白圆圈,如下所示:

enter image description here

我的代码显示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中的所有解决方案,但没有任何效果。 有人可以帮我吗?

3 个答案:

答案 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更改它。应该可以。!