두 조각 : FirstFragment
및 SecondFragment
이 있습니다. FirstFragment
에는 3 개의 페이지 (세 조각)가있는 ViewPager
이 들어 있습니다. 활성화의 onCreate
에서는 메인 레이아웃에 FirstFragment
을 추가하고 3 페이지가 정상적으로 표시됩니다.안드로이드의 조각에 ViewPager 추가
문제 : FirstFragment
을 SecondFragment
으로 바꾼 다음 컴백 FirstFragment
세 페이지가 사라집니다. 그런 다음 앞뒤로 스크롤 ViewPager
페이지가 표시되지만 첫 번째 및 세 번째 페이지 만 표시되고 두 번째 페이지는 사라집니다. 여기 FirstFragment
:
package com.example.bkmsx.afragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FirstFragment extends Fragment {
ViewPager mViewPager;
static MainActivity mainActivity;
public static FirstFragment newInstance(MainActivity activity){
mainActivity = activity;
return new FirstFragment();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.first_fragment, null);
mViewPager = (ViewPager) view.findViewById(R.id.view_pager);
ViewPagerAdapter adapter = new ViewPagerAdapter(mainActivity.getSupportFragmentManager());
mViewPager.setAdapter(adapter);
return view;
}
private class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
String text = "";
switch (position) {
case 0: text = "First Page";
break;
case 1: text = "Second Page";
break;
case 2: text = "Third Page";
break;
}
return TextFragment.newInstance(mainActivity, text);
}
@Override
public int getCount() {
return 3;
}
}
}
SecondFragment
:
package com.example.bkmsx.afragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class SecondFragment extends Fragment {
static MainActivity mainActivity;
public static SecondFragment newInstance(MainActivity activity) {
mainActivity = activity;
return new SecondFragment();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView textView = new TextView(mainActivity);
textView.setText("New Fragment");
return textView;
}
}
모든 sugg 에스티온? 미리 감사드립니다. FirstFragment
에서
mViewPager.setOffscreenPageLimit (3); –