Hallo, an alle!
Ich habe ein Problem mit dem TabMenu, unten habe ich ein GIF gepostet, das zeigt, wie es funktioniert, es funktioniert nicht richtig.
Wie es in Code funktioniert:
Tabs Menü Android - nicht korrekt Anruf Fragmente
MainActivity (ViewPager, TabsLayout) -> FragmnetAdapter (Für Registerkarten Layout)
Wie seine sein muss: "Home" (HomeFragment), "Geschichte" (HistoryFragment) "Places" (PlacesFragment)
Nun, wenn sein Start bei "Home" "Home" aber und Aufruf "History" auf "hstory" call "Places"
aber in Code starten ich habe nicht sehen einige Probleme kannst du mir helfen, bitte :)
Hier ist der Code:
MainActivity:
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);
}}
FragmentAdapter:
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);
}}
Startseite & Geschichte & PlaceFragment benötigt nicht ich denke, so :)
Vielen Dank! :)
Ich nehme an, dass Sie in Ihrem 'PlacesFragment' den ProgressDialog zeigen? Die Funktionsweise des PagerAdapters besteht darin, dass er die Fragmente vorlädt, die als nächste kopiert werden können. Wenn Sie also zum 'HistoryFragment' gehen, wird auch das 'PlacesFragment' erstellt. ProgressDialog ist sowieso ein veraltetes Verhaltensmuster. Es wäre am besten, wenn Sie eine ProgressBar in Ihre Ansicht einfügen und dann die Ansichten wechseln, nachdem der Ladevorgang abgeschlossen ist. – AChez9
@ AChez9 Ja, Sie haben Recht, aber ich möchte nicht inline ProgressBar verwenden, und wenn ich richtig verstehe, Sie traurig, dass es eine korrekte Arbeit von tabsMenu ist? und mein Code hat keine Probleme? –