我正在尝试使用ViewPager在我拥有的几个片段之间实现滑动系统。我有2个片段和1个listfragment。我将如何使用这两种类型的片段填充viewpager?或者在片段中实现ListView会更容易,因此我有3个片段吗?
对不起,我不够清楚。我有3个片段:2个课程延伸' Fragment'而第三个扩展了ListFragment'。在我的ViewPagerActivity中,当我将片段添加到列表时:
public class PageViewActivity extends FragmentActivity {
MyPageAdapter pageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<Fragment> fragments = getFragments();
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
pager.setAdapter(pageAdapter);
}
private List<Fragment> getFragments(){
List<Fragment> fList = new ArrayList<Fragment>();
fList.add(MainActivity.newInstance());
//fList.add(MainActivity.newInstance("Fragment 1"));
//fList.add(MyFragment.newInstance("Fragment 2"));
//fList.add(MyFragment.newInstance("Fragment 3"));
return fList;
}
}
我收到错误:
fList.add(MainActivity.newInstance());
这是我的ListFragment类(我知道MainActivity会抛出它,但它是我的ListFragment类)。我的listfragment类:
public class MainActivity extends ListFragment {
private List<ListViewItem> mItems;
public static MainActivity newInstance()
{
MainActivity f = new MainActivity();
Bundle bdl = new Bundle(1);
f.setArguments(bdl);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mItems = new ArrayList<ListViewItem>();
Resources resources = getResources();
setListAdapter(new ListViewAdapter(getActivity(), mItems));
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// remove the dividers from the ListView of the ListFragment
getListView().setDivider(null);
}
}
基本上,它给了我一个错误,因为我传递的是ListFragment的newInstance,但List类型是Fragments。我不认为应该有问题,因为ListFragment是Fragment的子类。
错误:列表中的add(android.support.v4.app.Fragment)无法应用于/ MainActivity
这就是为什么我不确定是否应该使用片段+列表视图来克服此错误。
答案 0 :(得分:0)
ViewPager实际上并不关心片段的类型,只要片段扩展Fragment
,偶数寻呼适配器也不会,ListFragment
当然。
答案 1 :(得分:0)
也许您的片段来自支持库,但ViewPager期待标准片段