【发布时间】:2016-12-31 04:24:05
【问题描述】:
在这里我得到的结果是......
-
活动开始..
当时这两个片段调用 -> 片段 1 加载 -> Fragment 2 在后台加载
-
向右交换(意味着从片段 1 到片段 2)
当时我在片段二,同时 -> Fragment 3 在后台加载
-
向右交换(意味着从 Frag 2 到 3 然后)
--> 没什么问题。
这是我的代码
主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "ONE");
adapter.addFragment(new TwoFragment(), "TWO");
adapter.addFragment(new ThreeFragment(), "THREE");
viewPager.setAdapter(adapter);
}
这是我的适配器类
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
// add fragment
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
// for title
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
现在有 3 个片段,那个片段没有任何内容.....
【问题讨论】:
-
您是否在更改选项卡时遇到片段丢失数据的问题?抱歉,无法正确回答您的问题。
-
我的意思是,当片段 1 同时加载时,片段 2 OnCreateView 也会加载......同样的方式.. 当我要去片段 2 时片段 3 onCreateView 调用
-
那么问题出在哪里?加载下一个片段是正常的 VIewPager 行为。
-
那么如何用片段来实现呢????我想要水平滚动功能 ..nd 在滚动上更改片段
-
“ViewPagerAdapter 总是加载下一个片段而不是当前片段”这是你的问题
标签: android android-layout android-fragments android-viewpager android-tablayout