选项卡菜单 android - 调用片段不正确

Tabs menu android - not correct call fragments

大家好!

我的 TabMenu 有问题,下面我贴了一张 GIF,它显示了它是如何工作的,它不能正常工作。
它在代码中是如何工作的:

MainActivity(ViewPager, TabsLayout)->FragmnetAdapter(用于标签布局)
它必须如何:"Home"(HomeFragment),"History"(HistoryFragment),"Places"(PlacesFragment)
现在当它开始于 "Home" 开始 "Home" 但是 调用 "History" "Hstory" 调用 "Places"
但是在代码中我没有看到一些问题你能帮我吗:)



这是代码:
主要活动:

public class MainActivity extends AppCompatActivity {

@BindView(R.id.appToolbarMainTabs)
Toolbar appToolbar;
@BindView(R.id.tabLayoutTabs)
TabLayout tabs;
@BindView(R.id.viewPager)
ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    setSupportActionBar(appToolbar);
    setupViewPager(viewPager);
    tabs.setupWithViewPager(viewPager);
}

// Add Fragments to Tabs
private void setupViewPager(ViewPager viewPager) {
    FragmentTabsAdapter adapter = new FragmentTabsAdapter(getSupportFragmentManager());
    adapter.addFragment(new HomeFragment(), getString(R.string.home_tab));
    adapter.addFragment(new HistoryFragment(), getString(R.string.history_tab));
    adapter.addFragment(new PlacesFragment(), getString(R.string.places_tab));
    viewPager.setAdapter(adapter);
}}


片段适配器:

public class FragmentTabsAdapter  extends FragmentPagerAdapter {

private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public FragmentTabsAdapter(FragmentManager manager) {
    super(manager);
}

@Override
public Fragment getItem(int position) {
    return mFragmentList.get(position);
}

@Override
public int getCount() {
    return mFragmentList.size();
}

@Override
public CharSequence getPageTitle(int position) {
    return mFragmentTitleList.get(position);
}

public void addFragment(Fragment fragment, String title) {
    mFragmentList.add(fragment);
    mFragmentTitleList.add(title);
}}



Home&History&PlaceFragment 不需要,我想是这样:)
非常感谢!:)

选项卡和 ViewPager 没问题,它总是至少预加载上一个和下一个片段。

您只能在片段显示且仍在加载信息时显示对话框。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    if (fragmentIsLoadingInfo()) { // implement this
      showLoading(); // implement this
    }
  }
}

还要检查 ViewPager 的 setOffscreenPageLimit 以了解正在发生的事情并更新此值,例如,如果您希望同时加载所有三个片段。遗憾的是,如果将其设置为 0,它仍然像 1 一样工作。