问题描述
- viewpager+fragment只显示第一个item
-
结构是fragment下一个父viewpager+fragment的组合,其中一个viewpager下嵌套了一个竖直方向的viewpager,子viewpager也是+fragment的组合,现在的问题是子viewpager中滑动切换的时候显示的都是同一个页面(第一个页面),滑动事件没有问题,就是滑动到第二个页面的时候显示的还是第一个item,使用的是getchildfragmentmanager,这个是没有问题的,滑动事件也没有问题,实在是头疼,找不出问题,代码贴在下面,请大神求解
解决方案
前三张是同一个图。。。。搞错了
解决方案五:
不把完整的代码贴出来?
滑动到第二个页面显示的还是第一个item,可能是你的viewpager的adapter中,放进去的item搞错了,检查一下adapter里面放了什么进去
解决方案六:
因为每一次都调用了onCreateView方法,重新加载了视图
解决方案七:
viewpager+fragment架构的代码 有很多 比如黑马程序员的智慧北京项目 淘宝里有卖
解决方案八:
initFragment()方法是在什么地方调用的?代码里没有看到
解决方案九:
onCreate()方法有问题吧,直接用给的参数inflater添加布局吧,而且怎么用的是三个参数的这个onCreate啊,代码给的不是很全,我所说的不一定解决问题
解决方案十:
完整代码在这里
public class FragmentMainGoldPlan extends FragmentBase{
private VerticalViewPager mViewPager;
private ArrayList<Fragment> mFragmentList;
private ImageButton ib_auto_bid;
private static final float MIN_SCALE = 0.75f;
private static final float MIN_ALPHA = 0.75f;
public static Fragment newInstance() {
Fragment fg = new FragmentMainGoldPlan();
fg.setHasOptionsMenu(true);
return fg;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
initFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_main_gold_plan_view, container,false);
mViewPager = (VerticalViewPager) view.findViewById(R.id.vp_gold_plan_pager);
ib_auto_bid = (ImageButton) view.findViewById(R.id.ib_go_auto_bid);
ib_auto_bid.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//斗金自动认购
goAutoBid();
}
});
mViewPager.setAdapter(new GoldPlanAdapter(getChildFragmentManager(),
mFragmentList));
return view;
}
protected void goAutoBid() {
Intent intent = new Intent(getActivity(), ActivityGoldAutoBid.class);
startActivity(intent);
}
private void initFragment() {
Fragment fg_first = FragmentGoldPlanFirst.newInstance();
Fragment fg_seccond = FragmentGoldPlanSeccond.newInstance();
mFragmentList = new ArrayList<Fragment>();
mFragmentList.add(fg_first);
mFragmentList.add(fg_seccond);
}
class GoldPlanAdapter extends FragmentPagerAdapter{
private ArrayList<Fragment> fgList;
public GoldPlanAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
public GoldPlanAdapter(FragmentManager fm,
ArrayList<Fragment> fragments) {
super(fm);
this.fgList = fragments;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return fgList.size();
}
@Override
public Fragment getItem(int position) {
// TODO Auto-generated method stub
return fgList.get(position);
}
}
}
时间: 2024-11-08 19:08:08