2016-09-19 70 views
1

我有一個包含差異Fragments爲3個標籤:如何設置所選選項卡工作在創建

  1. 產品和服務
  2. 商業指南
  3. 工作

貝婁是我TabFragement適配器該代碼正常工作,但只有一件事我想要的是: =>我想設置作業Fragment默認爲onCreate

enter image description here

這是我的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; 
     } 
    } 
} 
+0

要顯示在頂部 –

+0

使用setCurrentTab第三片段(3)以顯示所選片段工作 – PriyankaChauhan

+0

是當我開始它顯示第三選擇的活動 –

回答

3

您可以使用片段位置索引使用的ViewPagerdocssetCurrentItem方法來顯示特定片段爲默認值。在viewpager

viewPager.setCurrentItem(2, false); // job fragment index is 2 

false這裏的意思是設置adapter後做到這一點,以fragment 3的過渡將被立即完成,如果你通過true然後選擇fragment將使用滾動效果(可以使用true當你想顯示給一點遊用戶爲第一次)

+0

感謝Pavneet辛格,你的答案是工作,但是當我嘗試在主要活動中使用它時,它會產生錯誤,這裏是我的代碼'mFragmentManager = getSupportFragmentManager(); mFragmentTransaction = mFragmentManager.beginTransaction(); mFragmentTransaction.replace(R.id.containerView,new TabFragment())。commit(); TabFragment.viewPager.setCurrentItem(2,false); //作業片段索引是2' –

+0

您可以用'mainactivity'代碼更新您的問題,並且還添加logcat錯誤 –

+0

好像錯誤是'TabFragment.viewPager.setCurrentItem(2,false)'您這樣做太早了即你的片段和標籤沒有準備好使用,所以把這行放在這個'tabLayout.setupWithViewPage'後面 –

相關問題