【发布时间】:2017-11-16 03:51:51
【问题描述】:
我正在开发一个 android 应用程序,它有四个带有 tablayout 的片段,每个片段都有连接错误对话框。
- 第一个问题是,当我启动我的应用程序时,四个片段工作 同时同时。所以,当我发生连接错误四时 当我切换到第二个选项卡时,对话框显示在第一个片段中 它没有显示他的对话框,因为他的对话框首先显示 片段。
- 第二个问题是,我使用滑动刷新布局创建片段 从服务器获取数据。我在 onCreate 方法中调用 onRefresh 方法。 当我启动我的应用程序时,第一个片段数据是从服务器加载的,但是 当我将第一个选项卡切换到第二个选项卡时,它没有从 服务器,但是当我将第一个选项卡切换到第三个选项卡时,它可以工作。 此外,当我将第二个选项卡切换到第三个选项卡时,它不会从 服务器,但是当我将第二个选项卡切换到第四个选项卡时,它就可以工作了。它是 仅当我切换具有一个选项卡不同的选项卡时才有效。反正有没有 解决这些问题。
我从互联网上搜索了这个问题,但我没有得到我的问题答案。 请任何人帮助我。在此先感谢...... 对不起我的英语不好
这是表格代码
viewPager = (ViewPager) findViewById(R.id.viewpagerMain);
tabLayout = (TabLayout) findViewById(R.id.tablayoutMain);
tabLayout.addTab(tabLayout.newTab().setText("Noticeboard"));
tabLayout.addTab(tabLayout.newTab().setText("News"));
tabLayout.addTab(tabLayout.newTab().setText("Events"));
tabLayout.addTab(tabLayout.newTab().setText("Result"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager(), tabLayout.getTabCount()));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(0);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
这是 MyAdapter 类
class MyAdapter extends FragmentStatePagerAdapter {
int num_of_tab;
public MyAdapter(FragmentManager fm, int num_of_tab) {
super(fm);
this.num_of_tab = num_of_tab;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
NoticeBoardFragment noticeBoardFragment = new NoticeBoardFragment();
return noticeBoardFragment;
case 1:
NewsFragment newsFragment = new NewsFragment();
return newsFragment;
case 2:
EventsFragment eventsFragment = new EventsFragment();
return eventsFragment;
case 3:
ResultFragment resultFragment = new ResultFragment();
return resultFragment;
default:
return null;
}
}
@Override
public int getCount() {
return num_of_tab;
}
}
【问题讨论】:
-
第一个问题:需要在 Onresume() 方法而不是 oncreate() 中检查连接错误。
标签: android