在 Twitter(官方应用)等 Android 应用程序中,当遇到 ListView 时,可以将其拉下(释放时会弹回)以刷新内容。
我想知道在您看来,实现它的最佳方式是什么?
我能想到的一些可能性:
有什么建议吗?
PS我想知道官方Twitter应用程序源代码何时发布。已经提到它会发布,但是6个月过去了,从那以后我们就没有听说过它。
终于,谷歌发布了正式版的pull-to-refresh库!
它SwipeRefreshLayout在支持库中被调用,文档在 这里 :
SwipeRefreshLayout
添加SwipeRefreshLayout为视图的父视图,这将被视为刷新布局的拉动。(我ListView举个例子,它可以是任何ViewlikeLinearLayout等ScrollView)
ListView
View
LinearLayout
ScrollView
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/pullToRefresh" android:layout_width="match_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"/>
为您的班级添加一个监听器
protected void onCreate(Bundle savedInstanceState) { final SwipeRefreshLayout pullToRefresh = findViewById(R.id.pullToRefresh); pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { refreshData(); // your code pullToRefresh.setRefreshing(false); } });
}
您也可以pullToRefresh.setRefreshing(true/false);根据您的要求拨打电话。
pullToRefresh.setRefreshing(true/false);
更新
Android 支持库已被弃用,并已被 AndroidX 取代。可以在 此处 找到新库的链接。
此外,您需要将以下依赖项添加到您的项目中:
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
要么
你可以去 Refactor>>Migrate to AndroidX 和 Android Studio 会为你处理依赖。