首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SwipeRefreshLayout触发器以编程方式

SwipeRefreshLayout触发器以编程方式
EN

Stack Overflow用户
提问于 2014-07-05 23:32:25
回答 5查看 35.7K关注 0票数 67

有没有办法以编程方式触发SwipeRefreshLayout?动画应该会启动,并且应该会调用来自OnRefreshListener接口的onRefresh方法。

EN

回答 5

Stack Overflow用户

发布于 2020-01-08 20:55:11

线程来得有点晚,但是你不需要启动一个Runnable来做这件事。您可以简单地触发刷新并直接在onCreate中调用您的onRefresh方法,或者在您希望发生这种情况的任何地方:

代码语言:javascript
复制
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
    }
}
票数 1
EN

Stack Overflow用户

发布于 2020-06-16 01:10:04

只需创建一个SwipeRefreshLayout.OnRefreshListener,并在需要时调用其函数onRefresh()

代码语言:javascript
复制
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);

现在,每当您想要手动调用它时,只需通过侦听器调用它

代码语言:javascript
复制
refreshListener.onRefresh();
票数 1
EN

Stack Overflow用户

发布于 2016-10-13 04:20:24

您可以通过编程方式调用onRefresh()方法,然后在该方法内部启动动画(如果尚未启动)。请参阅以下内容:

代码语言:javascript
复制
@Override
public void onRefresh() {
    if (!mSwipeRefreshLayout.isRefreshing()) mSwipeRefreshLayout.setRefreshing(true);
    //TODO
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24587925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档