我有一个包含50个元素的arraylist,现在我必须在listview中显示项目限制意味着我想首先显示10个元素,当我将使用pull刷新然后我想加载更多数据意味着追加下10个项目和等等。 任何人都可以告诉我我该怎么做。
提前致谢。
答案 0 :(得分:2)
通过在Android.support.v4中引入SwipeRefreshLayout来检测任何视图上的垂直滑动,让我们的日子变得更轻松。
实现SwipeRefreshLayout非常简单。无论何时想要在任何视图上检测向下滑动,只需在SwipeRefreshLayout元素周围包裹视图。在我们的例子中,我们将使用它与ListView。并从SwipeRefreshLayout.OnRefreshListener
实现您的活动类<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- place your view here -->
</android.support.v4.widget.SwipeRefreshLayout>
将此代码放在JAVA文件中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
movieList = new ArrayList<>();
adapter = new SwipeListAdapter(this, movieList);
listView.setAdapter(adapter);
swipeRefreshLayout.setOnRefreshListener(this);
/**
* Showing Swipe Refresh animation on activity create
* As animation won't start on onCreate, post runnable is used
*/
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(true);
fetchMovies();
}
}
);
}
/**
* This method is called when swipe refresh is pulled down
*/
@Override
public void onRefresh() {
fetchMovies();
}
有关详情,请查看here
答案 1 :(得分:1)
SwipeRefreshLayout使用侦听器机制来通知保存此组件的侦听器发生刷新事件,因此换言之,我们的Activity必须实现要通知的接口。
Activity负责处理刷新事件并刷新相应的View。如果监听器一旦收到事件,确定应该进行刷新过程并想要显示“refresh animation
”,则必须调用setRefrshing(true)
,否则它可以取消调用 setRefreshing(false)
强>
在我们的例子中,我们将使用它与ListView。并从SwipeRefreshLayout.OnRefreshListener
实施您的活动类。当用户向下滑动视图时,将触发onRefresh()方法。您需要在该函数中采取适当的操作,例如进行http调用并获取最新数据。
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listView">
</ListView>
android.support.v4.widget.SwipeRefreshLayout
可用于检测用户的垂直滑动手势,以刷新内容。很明显,Android支持库android.support.v4
支持内置的Android Pull To Refresh使用 SwipeRefreshLayout查看。只要用户可以通过垂直滑动手势刷新视图内容,就应该使用SwipeRefreshLayout 。
请检查android-swipe-down-to-refresh-listview-tutorial和Git Demo以及Android Pull To Refresh View using SwipeRefreshLayout