如何在创建时设置选定的选项卡作业[重复]
Posted
技术标签:
【中文标题】如何在创建时设置选定的选项卡作业[重复]【英文标题】:How to set selected tab job in on create [duplicate] 【发布时间】:2017-01-26 18:11:58 【问题描述】:我有 3 个标签包含差异 Fragments
为:
-
产品和服务
企业名录
工作
Bellow 是我的 TabFragement 适配器代码工作正常,但我想要的只有一件事:
=> 我想在onCreate
中将 Job Fragment
设置为默认值
这是我的adapter
。
public class TabFragment extends Fragment
public static TabLayout tabLayout;
public static ViewPager viewPager;
public static int int_items = 3 ;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View x = inflater.inflate(R.layout.tab_layout,null);
tabLayout = (TabLayout) x.findViewById(R.id.tabs);
viewPager = (ViewPager) x.findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
tabLayout.post(new Runnable()
@Override
public void run()
tabLayout.setupWithViewPager(viewPager);
);
return x;
class MyAdapter extends FragmentPagerAdapter
public MyAdapter(FragmentManager fm)
super(fm);
@Override
public Fragment getItem(int position)
switch (position)
case 0 : return new Product_Service();
case 1 : return new Business_Dir();
case 2 : return new Job();
return null;
@Override
public int getCount()
return int_items;
@Override
public CharSequence getPageTitle(int position)
switch (position)
case 0 :
return "Product & Srevices";
case 1 :
return "Business Directory";
case 2 :
return "Job";
return null;
【问题讨论】:
你想在顶部显示第三个片段 使用 setCurrentTab(3) 显示选中的片段 Job 是的,当我开始活动时,它显示第三个选择 【参考方案1】:您可以使用片段位置索引将特定片段显示为默认使用setCurrentItem
ViewPager
docs 的方法。在viewpager
上设置adapter
后执行此操作
viewPager.setCurrentItem(2, false); // job fragment index is 2
false
这里的意思是,到fragment
3 的转换将立即完成,如果你通过true
然后选择fragment
将使用滚动效果显示(你可以使用true
当你想给第一次给用户做个小介绍)
【讨论】:
感谢 Pavneet Singh,您的回答是有效的,但是当我尝试在主要活动中使用它时出现错误,这是我的代码mFragmentManager = getSupportFragmentManager(); mFragmentTransaction = mFragmentManager.beginTransaction(); mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();TabFragment.viewPager.setCurrentItem(2, false); // job fragment index is 2
您可以使用mainactivity
代码更新您的问题并添加logcat 错误
似乎错误是TabFragment.viewPager.setCurrentItem(2, false)
你这样做太早了,即你的片段和标签还没有准备好使用,所以把这行放在tabLayout.setupWithViewPage
之后以上是关于如何在创建时设置选定的选项卡作业[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何确保我的 WPF TabControl 在至少包含一个选项卡时始终具有选定的选项卡?