2015-05-08 61 views
1

我正在爲我自己的要求屠宰SlidingTabsBasic示例。我對選項卡式佈局做得很少,所以我不確定接下來要做什麼。如何將碎片加載到SlidingTabLayout中

我使用SlidingTabLayout創建了3個選項卡。我有一個片段我想用於每個,但我不知道如何加載每個片段到標籤。 Google的示例只是使用標籤ID來更改文本標籤以匹配標籤ID。

 @Override 
     public Object instantiateItem(ViewGroup container, int position) { 
      // Inflate a new layout from our resources 
      View view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, 
        container, false); 
      // Add the newly created View to the ViewPager 
      container.addView(view); 

      // Retrieve a TextView from the inflated View, and update it's text 
      TextView title = (TextView) view.findViewById(R.id.item_title); 
      title.setText(String.valueOf(position + 1)); 



      // Return the View 
      return view; 
     } 

如果需要,可以發佈所有代碼,但不希望超負荷帖子。此外,我並沒有改變任何其他代碼(從下載的樣本)

編輯:

這裏是我的適配器,它正確地填充了冠軍,但似乎並沒有得到fragements(代碼只是得到一個白色屏幕的選項卡。已創建Tab1.java等,併爲每個佈局。)

@Override 
public int getCount() { 
    return NumbOfTabs; 
} 

@Override 
public Fragment getItem(int position) { 
    switch (position) { 
     case 0: 
      return new Tab1(); 
     case 1: 
      return new Tab2(); 
     case 2: 
      Tab3 tab3 = new Tab3(); 
      return tab3; 
    } 
    return 

@Override 
public CharSequence getPageTitle(int position) { 
    return Titles[position].toUpperCase(); 
} 

回答

0

要使標籤正常工作,您需要使用適配器設置。我相信Google代碼確實有適合您使用的適配器。 實質上,您將創建一個新的Java類,該類繼承FragmentStatePagerAdapter(取決於您的需要),然後設置getItem方法以返回每個選項卡所需的片段。 下面是一個例子,可以幫助你實現你的目標:

@Override 
public Fragment getItem(int position) { 
    switch (position) { 
     case 0: 
      FirstFragment fragment1 = new FirstFragment(); 
      return fragment1; 
     case 1: 
      SecondFragment fragment2 = new SecondFragment(); 
      return fragment2; 
     default: 
      return null; 
    } 
} 

上面的代碼,您可以選擇哪些片段需要的每個選項卡上。讓我知道如果你需要更多的幫助

編輯:另外,一個更好的方法標籤名稱將重寫適配器類中的getPageTitle並返回所需的字符串標題。

+0

好吧,我現在到了那裏 - 我修改了適配器和一個擴展適配器的新類。 'getPageTitle'工作,但getItem'不返回任何內容。 –

0

我認爲答案很簡單,你需要展示的代碼片段是一個轉接器內。底層機制是一個ViewPager,當它連接到一個適配器時,它將在每個項目需要它的存在時調用這個方法。我沒有看過他們的榜樣,而是要編排每一頁的呼喚和處理。