Android视图寻呼机再次调用时不显示片段

Android视图寻呼机再次调用时不显示片段,android,listview,android-fragments,android-viewpager,android-tablayout,Android,Listview,Android Fragments,Android Viewpager,Android Tablayout,我的应用程序中有一个滑动菜单,当我点击菜单中的一个项目时,它会显示相应的片段。那个fragmet有一个列表和一个浏览页面。下面给出了xml片段 <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:background="@color/colorPrimary" ap

我的应用程序中有一个滑动菜单,当我点击菜单中的一个项目时,它会显示相应的片段。那个fragmet有一个列表和一个浏览页面。下面给出了xml片段

<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:background="@color/colorPrimary"
        app:tabSelectedTextColor="@color/textColorPrimary"
        app:tabTextColor="@color/colorAccent"
        android:layout_height="wrap_content"
        app:tabMode="fixed"
        app:tabGravity="fill"/>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_below="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

下面给出了在滑块菜单上单击的片段的代码片段

public class MyCoursesFragment extends Fragment {
    private TabLayout tabLayout;
    private ViewPager viewPager;

    public MyCoursesFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
        adapter.addFragment(new ScheduledFragment(), "SCHEDULED");
        adapter.addFragment(new LiveStreamingFragment(), "LIVE STREAMING");
        adapter.addFragment(new UpcomingFragment(), "UPCOMING");
        viewPager.setAdapter(adapter);
    }

    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 addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

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


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        Log.d("mlearning", "inside my course");
        View rootView = inflater.inflate(R.layout.fragement_courses, container, false);
        viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) rootView.findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);

        return rootView;
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }

    @Override
    public void onDetach() {
        super.onDetach();
    }
}
公共类MyCoursesFragment扩展片段{
私人摊位摊位;
私人视页机视页机;
公共MyCoursesFragment(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
专用无效设置ViewPager(ViewPager ViewPager){
ViewPagerAdapter适配器=新的ViewPagerAdapter(getFragmentManager());
addFragment(新的ScheduledFragment(),“SCHEDULED”);
addFragment(新的LiveStreamingFragment(),“直播”);
addFragment(新的UpcomingFragment(),“即将推出”);
viewPager.setAdapter(适配器);
}
类ViewPagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共视图页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitleList.add(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitleList.get(位置);
}
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
Log.d(“学习”、“课程内”);
视图根视图=充气机。充气(R.layout.fragement_courses,container,false);
viewPager=(viewPager)rootView.findViewById(R.id.viewPager);
设置viewPager(viewPager);
tabLayout=(tabLayout)rootView.findviewbyd(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
返回rootView;
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
}
@凌驾
公共无效连接(){
super.onDetach();
}
}
在上面的片段中有三个选项卡。每个片段的xml都包含一个列表视图,下面给出了xml

<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lvList"
        android:paddingLeft="10dp"
        android:paddingTop="10dp"
        android:backgroundTint="#888686" />

tablayout片段的代码如下所示:

public class ScheduledFragment  extends Fragment {

public ScheduledFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    Log.d("mlearning", "inside scheduled");
    View rootView = inflater.inflate(R.layout.fragment_scheduled, container, false);
    ArrayList<CoursePojo> searchResults = GetSearchResults();

    final ListView lv1 = (ListView) rootView.findViewById(R.id.lvList2);
    lv1.setAdapter(new MyCustomCourseList(getActivity(), searchResults));

    lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            Object o = lv1.getItemAtPosition(position);
            CoursePojo fullObject = (CoursePojo) o;
            //Toast.makeText(getBaseContext(), "You have chosen: " + " " + fullObject.getId(), Toast.LENGTH_LONG).show();


        }
    });
    return rootView;

}
private ArrayList<CoursePojo> GetSearchResults(){
    ArrayList<CoursePojo> results = new ArrayList<CoursePojo>();CoursePojo coursePojo3=new CoursePojo();
    coursePojo3.setName("Android");
    coursePojo3.setDesc("First os was released without a phone ");
    coursePojo3.setStartdate("20 Mar");
    coursePojo3.setEndDate("8 Apr");
    coursePojo3.setProgress("40");
    results.add(coursePojo3);




    // Inflate the layout for this fragment
    return results;
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
}

@Override
public void onDetach() {
    super.onDetach();
}} 
公共类ScheduledFragment扩展了片段{
公共ScheduledFragment(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
日志d(“学习”、“计划内”);
视图根视图=充气机。充气(R.layout.fragment\u计划,容器,false);
ArrayList searchResults=GetSearchResults();
final ListView lv1=(ListView)rootView.findviewbyd(R.id.lvList2);
lv1.setAdapter(新的MyCustomCourseList(getActivity(),searchResults));
lv1.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
对象o=lv1.getItemAtPosition(位置);
CoursePojo fullObject=(CoursePojo)o;
//Toast.makeText(getBaseContext(),“您已选择:”+“”+fullObject.getId(),Toast.LENGTH_LONG.show();
}
});
返回rootView;
}
私有ArrayList GetSearchResults(){
ArrayList结果=新建ArrayList();CoursePojo CoursePojo 3=新建CoursePojo();
coursePojo3.setName(“Android”);
coursePojo3.setDesc(“第一个操作系统是在没有手机的情况下发布的”);
课程作业3.设置开始日期(“3月20日”);
课程作业3.设置结束日期(“4月8日”);
课程作业3.设置进度(“40”);
结果:添加(coursePojo3);
//为该碎片膨胀布局
返回结果;
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
}
@凌驾
公共无效连接(){
super.onDetach();
}} 

最初,当我单击菜单片段时,选项卡片段中的值与代码中提到的一样。但是,如果我再次点击菜单滑块,选项卡布局中的项目将不会显示。此外,一些选项卡为空,或者一些选项卡具有某些值。我哪里做错了

使用FragmentStatePagerAdapter instant of FragmentPagerAdapter。

使用FragmentStatePagerAdapter instant of FragmentPagerAdapter。

尝试在onResume()内的列表中填充数据。

您正在使用片段内的片段调用getChildFragmentManager()。尝试这行代码。ViewPagerAdapter适配器=新的ViewPagerAdapter(getChildFragmentManager());您正在片段调用getChildFragmentManager()中使用片段。尝试这行代码。ViewPagerAdapter适配器=新的ViewPagerAdapter(getChildFragmentManager());现在我又遇到了同样的问题,同样的代码,一定有什么改变。否则,它的工作权利?现在我有同样的问题再次与相同的代码有一定的东西改变。否则,它的工作权利?