有没有办法以编程方式触发SwipeRefreshLayout
?动画应该会启动,并且应该会调用来自OnRefreshListener
接口的onRefresh
方法。
发布于 2020-01-08 20:55:11
线程来得有点晚,但是你不需要启动一个Runnable来做这件事。您可以简单地触发刷新并直接在onCreate中调用您的onRefresh方法,或者在您希望发生这种情况的任何地方:
class MyFragment: SwipeRefreshLayout.OnRefreshListener {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initViews()
}
fun initViews() {
swipe_refresh_layout?.apply {
setOnRefreshListener(this@MyFragment)
isRefreshing = true
onRefresh()
}
}
override fun onRefresh() {
// Do my refresh logic here
}
}
发布于 2020-06-16 01:10:04
只需创建一个SwipeRefreshLayout.OnRefreshListener
,并在需要时调用其函数onRefresh()
:
SwipeRefreshLayout srl;
SwipeRefreshLayout.OnRefreshListener refreshListener;
srl = (SwipeRefreshLayout)v.findViewById(R.id.swipeRefreshLayout);
refreshListener = new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//Do your stuff here
}
};
srl.setOnRefreshListener(refreshListener);
现在,每当您想要手动调用它时,只需通过侦听器调用它
refreshListener.onRefresh();
发布于 2016-10-13 04:20:24
您可以通过编程方式调用onRefresh()方法,然后在该方法内部启动动画(如果尚未启动)。请参阅以下内容:
@Override
public void onRefresh() {
if (!mSwipeRefreshLayout.isRefreshing()) mSwipeRefreshLayout.setRefreshing(true);
//TODO
}
https://stackoverflow.com/questions/24587925
复制相似问题