将pull设置为刷新为启动或恢复片段时刷新

时间:2014-01-08 21:25:00

标签: android

我正在使用此库Android-PullToRefresh:https://github.com/chrisbanes/Android-PullToRefresh

我需要在活动开始时实现自动“拉动刷新”,即具有与拉下自动触发的片段而不是用户拉动手势相同的视觉和功能效果。你知道我能做到吗?

编辑: 我的代码如下

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved)
{
    View view = inflater.inflate(R.layout.layout_frg_summarized, group, false);
    mPullToRefreshLayout = (PullToRefreshLayout) view.findViewById(R.id.summary_layout);
    ActionBarPullToRefresh.from(getActivity())
    .allChildrenArePullable()
    .listener(this)
    .setup(mPullToRefreshLayout);   

    return view;

}


@Override
public void onActivityCreated (Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);

    //some code here

    mPullToRefreshLayout.isRefreshing();

}

@Override
public void onResume(){
    super.onResume();

    if (mPullToRefreshLayout.isRefreshing()) {
     mPullToRefreshLayout.setRefreshing(true);
    } 

}


@Override
public void onPause(){
    super.onPause();
    mPullToRefreshLayout.setRefreshing(false);
    if (mPullToRefreshLayout.isRefreshing()) {
        mPullToRefreshLayout.setRefreshComplete();
    } 


}

1 个答案:

答案 0 :(得分:6)

是的,你可以。

与能够调用onRefreshComplete()类似,有一种setRefreshing()方法:

myRefreshableView.setRefreshing();

编辑:

看起来onRefreshStarted被称为when a user-initiated refresh is started。这意味着如果要从代码启动自己的刷新,则必须更新UI并自行开始刷新。我没有看到你开始下载的代码,但你必须将该方法的内容拉出到另一种方法,如下所示:

@Override
public void onRefreshStarted(View view) {
    startDownload();
}

然后,当你想在代码中开始下载时(例如在onResume中):

@Override
public void onResume(){
    super.onResume();
    mPullToRefreshLayout.setRefreshing(true);
    startDownload();
}

您对isRefreshing()中的onActivityCreated的呼叫无效 - 这是检查UI是否当前处于“刷新”状态的检查。此外,您在当前onResume代码中使用该检查来执行实际上没有执行任何操作的调用 - 如果布局是刷新的,则将其设置为刷新。