2016-07-17 65 views
-1

在我的主要活動,我創建tablayout和查看尋呼機,然後當我切換到標籤B(標籤A到標籤B)和標籤B內,我創建另一個標籤佈局和viewpager但內容變空,只顯示標籤名稱。請指導我這個問題。這是我在標籤B碼:標籤佈局和查看尋呼機內部標籤佈局和viewpager

public class TabB extends BaseFragment { 

private TabLayout tabLayout; 
private ViewPager viewPager; 

@Override 
public int getLayoutResourceId() { 
    return R.layout.fragmentB; 
} 

@Override 
public void initView(View view) { 
    viewPager = (ViewPager) view.findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 
    tabLayout = (TabLayout) view.findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
} 

private void setupViewPager(ViewPager viewPager) { 
    ViewChildPagerAdapter adapter = new ViewChildPagerAdapter(getChildFragmentManager()); 
    adapter.addFragment(new TabC, "tab c"); 
    adapter.addFragment(new TabD, "tab d"); 
    viewPager.setAdapter(adapter); 
} 

public static class ViewChildPagerAdapter extends FragmentStatePagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mTitle = new ArrayList<>(); 

    public ViewChildPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mTitle.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mTitle.get(position); 
    } 


} 

}

+0

你的標籤裏面不應該有其他標籤 - 這是不好的做法。你不能有嵌套的標籤。想象一下你向左滑動來改變標籤:你會改變哪個標籤,內部標籤還是外部標籤?我會建議你重新考慮你的導航界面。 –

+0

看起來像一個糟糕的設計......如果你水平滑動,哪個ViewPager應該移動? –

+0

是的,我知道,但我必須根據客戶的要求遵循它。他們有底部的標籤佈局,然後他們希望另一個標籤頂部的B片段。 –

回答

-2

我不明白你的意思創建一個單獨的片段中新tablayout。爲什麼不在活動本身上創建TabLayouts?那麼你只需撥打setupWithViewPager()一次。