如何在创建时设置选定的选项卡作业[重复]

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】:

您可以使用片段位置索引将特定片段显示为默认使用setCurrentItemViewPagerdocs 的方法。在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之后

以上是关于如何在创建时设置选定的选项卡作业[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX TabPane:如何设置选定的选项卡

如何确保我的 WPF TabControl 在至少包含一个选项卡时始终具有选定的选项卡?

在情节提要中更改选项卡栏项目选定的颜色

如何在 jquery 中自动回发后维护选定的选项卡?

jQuery UI 选项卡 - 如何获取当前选定的选项卡索引

WPF 选项卡控件:如何获取当前选定的选项卡?