2015-07-31 3 views
-1

У меня есть ListView, и я должен реализовать для него определенное поведение.
ListView с определенным поведением

Когда пользователь прокручивает вверх по ListView, который находится в исходном положении:

  1. ListView должен двигаться вниз немного;
  2. ProgressBar должно появиться;

Следующее изображение показывает результат, который я хочу добиться:

enter image description here

Любые предложения, как это сделать? Благодарю.

ответ

1

Использование SwipeRefreshLayout от поддержки-v4 https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

Оберните ListView в SwipeRefreshLayout в XML:

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

    <ListView 
     android:id="@+id/listview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</android.support.v4.widget.SwipeRefreshLayout> 

И установить слушателя в вашем onCreate():

SwipeRefreshLayout swipe = (SwipeRefreshLayout) findViewById(R.id.swipe); 
swipe.setOnRefreshListener(this); 

и реализовать его

@Override 
public void onRefresh() { 
    new Handler().postDelayed(new Runnable() { 
     @Override public void run() { 
      swipe.setRefreshing(false); 
     } 
    }, 5000); 
} 
+0

спасибо, что он отлично работает – hornet2319

+0

@ hornet2319 без проблем –

1

Вы можете использовать SwipeRefreshLayout или другую библиотеку, как это было предложено в @Cobbles ответ.

Это не совсем то, что вы ищете, но та же функция. Преимущество макета обновления swipe заключается в том, что это часть библиотеки поддержки Android, и пользователь ее видит.

+0

спасибо за ваш ответ – hornet2319

Смежные вопросы