Как работать со сменными вкладками с нижней навигацией
Привет, я пытался использовать ударную вкладку с нижней панелью навигации, но при повторном выборе вкладки не хватает и ничего не показывает. Я называю фрагменты вкладок смахивания от фрагмента нижней панели. Это мой код
public class WalletFragment extends Fragment {
private ViewPager viewPager;
private WalletTabsAdapter mAdapter;
PagerSlidingTabStrip wallettabs;
// Tab titles
public static WalletFragment newInstance(int instance) {
Bundle args = new Bundle();
args.putInt("input", instance);
WalletFragment fragment = new WalletFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_wallet, container, false);
// Initilization
viewPager = (ViewPager) rootView.findViewById(R.id.walletpager);
wallettabs = (PagerSlidingTabStrip) rootView.findViewById(R.id.wallettabs);
mAdapter = new WalletTabsAdapter(getFragmentManager());
viewPager.setAdapter(mAdapter);
wallettabs.setViewPager(viewPager);
/**
* on swiping the viewpager make respective tab selected
* */
return rootView;
}
}
3 ответа
Использование getChildFragmentManager()
вместо getFragmentManager()
, Смотри viewpager ничего не показывал после смены нижнего меню навигации. Я пробовал, и это отлично работает
Попробуй с этим
viewPager = (ViewPager) rootView.findViewById(R.id.walletpager);
wallettabs = (PagerSlidingTabStrip) rootView.findViewById(R.id.wallettabs);
mAdapter = new WalletTabsAdapter(getFragmentManager());
viewPager.setAdapter(mAdapter);
wallettabs.setViewPager(viewPager);
viewPager.setOffscreenPageLimit(2); // add this line
Если есть родительский вид пейджер для нижней навигации, то вы также можете использовать это
parrentViewPager.setOffscreenPageLimit(4);
У меня тоже была эта проблема. Моя проблема была в том, что у меня было два ViewPager
Находятся на двух разных вкладках BottomNavigation, и оба они содержат ViewPager в макете:
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
После того, как я изменил идентификатор одного из них, чтобы дифференцировать, это работало!
<android.support.v4.view.ViewPager
android:id="@+id/container2" <!-- Changed ID -->
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />