Android视图寻呼机再次调用时不显示片段
我的应用程序中有一个滑动菜单,当我点击菜单中的一个项目时,它会显示相应的片段。那个fragmet有一个列表和一个浏览页面。下面给出了xml片段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
<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());现在我又遇到了同样的问题,同样的代码,一定有什么改变。否则,它的工作权利?现在我有同样的问题再次与相同的代码有一定的东西改变。否则,它的工作权利?