gpt4 book ai didi

android - PullToRefresh 是否与 FragmentPagerAdapter 一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:29 25 4
gpt4 key购买 nike

图书馆:

在示例 PullToRefreshListInViewPagerActivity 中,仅适用于 PageAdapter。

我找不到一种方法让它与 FragmentPageAdapter 一起工作。

示例:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ptr_list_in_vp);

mViewPager = (ViewPager) findViewById(R.id.vp_list);
mViewPager.setAdapter(new ListViewPagerAdapter());
}

private class ListViewPagerAdapter extends PagerAdapter {

@Override
public View instantiateItem(ViewGroup container, int position) {
Context context = container.getContext();

PullToRefreshListView plv = (PullToRefreshListView) LayoutInflater.from(context).inflate(
R.layout.layout_listview_in_viewpager, container, false);

ListAdapter adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1,
Arrays.asList(STRINGS));
plv.setAdapter(adapter);

plv.setOnRefreshListener(PullToRefreshListInViewPagerActivity.this);

// Now just add ListView to ViewPager and return it
container.addView(plv, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

return plv;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}

@Override
public int getCount() {
return 3;
}

}

@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
new GetDataTask(refreshView).execute();
}

private static class GetDataTask extends AsyncTask<Void, Void, Void> {

PullToRefreshBase<?> mRefreshedView;

public GetDataTask(PullToRefreshBase<?> refreshedView) {
mRefreshedView = refreshedView;
}

@Override
protected Void doInBackground(Void... params) {
// Simulates a background job.
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
return null;
}

@Override
protected void onPostExecute(Void result) {
mRefreshedView.onRefreshComplete();
super.onPostExecute(result);
}
}

}

最佳答案

您可以将 ListFragment 添加到 FragmentPageAdapter(或 FragmentStatePageAdapter)并在其上添加 Pull-To-Refresh 功能。

Android-PullToRefresh 存储库有一个关于 ListFragment 的例子.

Android 开发者网站有一个关于如何制作 FragmentPagerAdapter 的示例代码或 FragmentStatePagerAdapter .

你也可以看看我的测试项目:https://github.com/caiguanhao/FSPAtest

关于android - PullToRefresh 是否与 FragmentPagerAdapter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com