从另一个屏幕转到TabLayout内的Android ViewPager后丢失
我的TabLayout和ViewPager在一个片段中。因此,ViewPager在开始时显示片段,但在我从另一个屏幕返回后,ViewPager丢失了 我在我的应用程序上使用buttom导航,如果我第一次单击包含我的ViewPager的菜单,它会工作,但在我单击其他菜单,然后返回ViewPager屏幕后,ViewPager内容会丢失。有人能帮我吗 这是我的适配器:从另一个屏幕转到TabLayout内的Android ViewPager后丢失,android,android-fragments,android-viewpager,android-tablayout,Android,Android Fragments,Android Viewpager,Android Tablayout,我的TabLayout和ViewPager在一个片段中。因此,ViewPager在开始时显示片段,但在我从另一个屏幕返回后,ViewPager丢失了 我在我的应用程序上使用buttom导航,如果我第一次单击包含我的ViewPager的菜单,它会工作,但在我单击其他菜单,然后返回ViewPager屏幕后,ViewPager内容会丢失。有人能帮我吗 这是我的适配器: public class AdapterTabInfo extends FragmentStatePagerAdapter i
public class AdapterTabInfo extends FragmentStatePagerAdapter implements UpperExFragment.OnFragmentInteractionListener, LowerExFragment.OnFragmentInteractionListener {
int numTabInfo;
public AdapterTabInfo(FragmentManager fm, int numTabInfo){
super(fm);
this.numTabInfo = numTabInfo;
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
UpperExFragment upperExFragment = new UpperExFragment();
return upperExFragment;
case 1:
LowerExFragment lowerExFragment = new LowerExFragment();
return lowerExFragment;
default:
return null;
}
}
public int getCount(){
return numTabInfo;
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
这是我的XML:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/info_tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
app:tabIndicatorColor="@color/colorWhite"
app:tabTextColor="@color/colorWhite"/>
<androidx.viewpager.widget.ViewPager
android:layout_below="@id/info_tab_layout"
android:id="@+id/info_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</androidx.viewpager.widget.ViewPager>
</RelativeLayout>
public InfoFragment() {}
TabLayout tabLayout;
ViewPager viewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_info, container, false);
//FindView
setFindView(view);
//TabLayout
setTabLayout();
return view;
}
@Override
public void onResume() {
super.onResume();
}
private void setFindView(View view){
tabLayout = view.findViewById(R.id.info_tab_layout);
viewPager = view.findViewById(R.id.info_pager);
}
private void setTabLayout(){
//TabLayout Tabs
tabLayout.addTab(tabLayout.newTab().setText("Upper Extremity"));
tabLayout.addTab(tabLayout.newTab().setText("Lower Extremity"));
//Adapter TabLayout
AdapterTabInfo adapterTabInfo = new AdapterTabInfo(getActivity().getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapterTabInfo);
viewPager.setOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
//TabLayout OnClick
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}