2014-01-08 26 views
4

我使用这个库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(); 
    } 


} 

回答

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代码中使用该检查来执行实际上没有任何操作的呼叫 - 如果布局刷新,则将其设置为刷新。

+0

另外,你是否知道[替换库](https://github.com/chrisbanes/ActionBar-PullToRefresh)?它与Gmail和Google+应用中的“拉取至刷新”行为相匹配,并且与ActionBar配合良好。 –

+0

我已经取代拉刷新与你建议和所有工作正常,但我仍然无法使用方法调用someRefreshableView.setRefreshing()初始刷新开始的fragmant。 –

+0

我[只是实现了这个](https://github.com/adamsp/WhatsShaking/commit/408e8dccf5ecfe958dc689904d62e513e218077b#diff-efb9421d4ffa38e80cde340c80b35b7cR183),并且我得到了相同的视觉效果 - 具体来说,我得到了在屏幕上移动的酒吧。 “加载”视图也会短暂出现。你是否在寻找别的东西,还是你没有得到这种行为?也许你可以在问题中添加一些代码。 –