2016-07-17 4 views
-1

В моей основной деятельности я создаю tablayout и просматриваю пейджер, а затем, когда я переключаюсь на вкладку B (вкладка A на вкладку B) и внутри вкладки B, я создаю другую компоновку вкладок и просмотрщик но содержимое становится пустым, отображается только имя табуляции. Пожалуйста, объясните мне эту проблему. Это мой код в Tab 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() один раз.

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