안녕하세요. 개발간 당연히 될것 같은부분이 안되어서 질문드립니다....
구조상 한개의 ViewPager로 2개의 동일한 페이지를 보여주고 상단 탭으로 전환하며, 보여지는 페이지에도 VIewPager가 존재하여 여러 페이지들을 보여주고 있습니다.
코딩 후 실제화면을 확인해보니 첫번째 탭 페이지는 정상이나 두번째 페이지에는 ViewPager 부분이 없는 현상이 발견되었습니다...
이유를 찾는 중 두번째 페이지에서의 FragmentPagerAdapter에서 getItem이 호출이 안되는걸 확인했습니다..
무슨 이유때문에 이러한 현상이 발생하는 것인지 알고 싶어 질문 남깁니다...
코드는 아래와 같습니다...
최상단 VIewPager에 들어가는 Fragment
public class TestActivity extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
LinearLayout layoutView = (LinearLayout) inflater.inflate(R.layout.test_layout,container,false);
ViewPager viewPager = (ViewPager)layoutView.findViewById(R.id.testPager);
TestAdapter testAdapter = new TestAdapter(getFragmentManager());
viewPager.setAdapter(testAdapter);
return layoutView;
}
}
포함되어있는 ViewPager
public class Test_Fragment extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
LinearLayout layoutView = (LinearLayout) inflater.inflate(R.layout.test_fragment,container,false);
return layoutView;
}
}
Adapter는 같은 클래스는 아니나 코드상으로는 동일하여 한개만 남깁니다..
public class TestAdapter extends FragmentPagerAdapter {
private int tabCount = 3;
private Intent intent;
public TestAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new Test_Fragment();
case 1:
return new Test_Fragment();
case 2:
return new Test_Fragment();
default:
return null;
}
}
@Override
public int getCount() {
return tabCount;
}
public void setIntent(Intent intent) {
this.intent = intent;
}
}