Индикатор SwipeRefreshLayout не имеет стрелки круга загрузки - PullRequest
0 голосов
/ 07 декабря 2018

Я использую SwipeRefreshLayout во фрагменте внутри действия.Это работает хорошо, когда я провожу вниз, но когда Фрагмент впервые создает и загружает данные.У него просто пустой круг без стрелки загрузки анимации, например:

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
}

MyXML-макет:

<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 () не показывает индикатор изначально , но ничего не работает.Может кто-нибудь поможет мне в этом?

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Попробуйте это:

<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>
0 голосов
/ 07 декабря 2018

Я думаю, что ваш цвет акцента белый, а фон круга тоже белый, поэтому его не видно, попробуйте изменить его из папки файла value / color.xml.есть ColourAccent поменяй его.должно работать.!

0 голосов
/ 07 декабря 2018

Проблема в том, что setColorSchemeColors () нуждаются в целых числах цвета в качестве входных данных, таких как Color.BLUE, а не в идентификаторах цветовых ресурсов.

Таким образом, чтобы показать цвет стрелки, код должен выглядеть следующим образом:

swipeRefreshLayout.setColorSchemeColors(Color.BLACK,
        Color.BLUE,
        Color.GREEN,
        Color.GRAY

);

и для установки идентификаторов цветовых ресурсов код должен быть таким:

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
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...