SetRefreshing (true) не показывает индикатор

Я использую SwipeRefreshLayout, и все в порядке, когда Listview имеет несколько дочерних элементов. Проблема заключается в следующем: когда listView не имеет чили, он не показывает индикатор загрузки после вызова setRefreshing (true). Как это исправить?

Ответ 1

На самом деле это показывает индикатор... за ActionBar!

Как я исправил это, было ниже:

    Display display = getActivity().getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int height = size.y;
    getSwipeRefreshLayout().setProgressViewOffset(false, -200, height / 9);

ИЗМЕНИТЬ

Выше уже не правильный ответ. Правильный ответ ниже:

getSwipeRefreshLayout().post(new Runnable() {
    @Override public void run() {
        getSwipeRefreshLayout().setRefreshing(true);
    }
});

Ответ 2

Как это исправить?

Я столкнулся с той же проблемой. Мое исправление заключалось в том, чтобы предоставить пустой вид для ListView, обернутый вокруг ScrollView и a SwipeRefreshLayout. Что-то ложь:

  <android.support.v4.widget.SwipeRefreshLayout        
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:id="@android:id/empty"
       android:layout_height="match_parent" >

       <ScrollView
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >
          <View                    
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />
       </ScrollView>
   </android.support.v4.widget.SwipeRefreshLayout>