2015-08-05 1 views
2

Я добавил библиотеку поддержки Android TabLayout (Parent) с 4 вкладками. Я добавил еще одну вкладку TabLayout (Child) внутри одного из видов вкладок родительского tablayout. Пролистать внутренние вкладки дочернего tablayout не происходит правильно (в основном из-за конфликта в масках макета родительских и дочерних вкладок). Как отключить прокрутку внутри дочернего tablayout?ошибки в tablayout, которые находятся внутри представления вкладки parent tablayout

Я использовал отдельный просмотрщик для обеих таблиц.

ответ

0

Этот простой код может вам помочь. Используйте этот пример кода в вашем родительском фрагменте добавить дочерние вкладки:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_index_markets, container, false); 

    viewPager = (ViewPager) view.findViewById(R.id.markets_viewpager); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) view.findViewById(R.id.markets_tabs); 
    tabLayout.setupWithViewPager(viewPager); 

    return view; 
} 
private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager()/*getActivity().getSupportFragmentManager()*/); 
    adapter.addFrag(new yourInnerFragment(), "tab1"); 
    adapter.addFrag(new yourSecondInnerFragment, "tab2"); 

    viewPager.setAdapter(adapter); 
    viewPager.setCurrentItem(1); 
} 
class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

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

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

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

    public void addFrag(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

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

Обратите внимание, что иногда лучше использовать getActivity().getSupportFragmentManager() вместо getChildFragmentManager(). Также проверьте эту ссылку: https://code.google.com/p/android/issues/detail?id=180462

 Смежные вопросы

  • Нет связанных вопросов^_^