내 앱은 android.support.v4.view.ViewPager
클래스를 사용합니다. ViewPager의 각 페이지에 대해 하나의 Fragment가 있고, 각 Fragment에는 자체 레이아웃 파일이 있어야합니다. 각 Fragment는 자체 파일에 정의됩니다. 나는 이것을 시행하는데 어려움을 겪고있다. 명확히하기 위해,이 :안드로이드 ViewPager 여러개의 조각 클래스가 각각의 레이아웃 파일에 있습니다
1 ViewPager
4 조각 파일 - FragmentOne.class, FragmentTwo.class, FragmentThree.class, FragmentFour.class
4 XML 레이아웃 파일 - frag_one.xml, frag_two.xml, frag_three. xml, frag_four.xml
예를 들어 하나의 레이아웃 파일 만 처리했습니다. 여기
내 FragmentActivity는 ViewPager가 개최되는 곳이다 :
public class Main extends FragmentActivity {
MyAdapter mAdapter;
ViewPager mPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAdapter = new MyAdapter(getSupportFragmentManager());
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
}
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 4;
}
@Override
public Fragment getItem(int position) {
return EditorFragment.newInstance(position);
}
}
}
내 주요 질문은 : 내가 어댑터, MyAdapter
, ViewPager로를 통해 네 개의 분리 된 조각 파일과 원활 페이지를 인식을 어떻게합니까? getItem()
은 어떤 종류의 수정을해야합니까?
도움을 주시면 감사하겠습니다.
는는 편집 :
편집 2 : 그래서, 내가 무엇을 제안 lulumeya 노력이 함께했다
예, 그 휴식 문을 고정. 이제 작동합니다. 도와 주신 모든 분들께 감사드립니다! 이제 나는 훌륭한 인종 차별, 감사합니다.
@Override
public Fragment getItem(int position) {
Fragment f = new Fragment();
switch (position) {
case 0:
f = FragmentOne.newInstance(position);
break;
case 1:
f = FragmentTwo.newInstance(position);
break;
case 2:
f = FragmentThree.newInstance(position);
break;
case 3:
f = FragmentFour.newInstance(position);
break;
}
return f;
}
앱 표시는 항상 좋은 징조이지만 레이아웃 4에 고정되어 있습니다. 오른쪽으로 페이지를 이동하면 모든 페이지에 대해 레이아웃 4가됩니다. 각 조각에 대한 인플레이 트의 레이아웃을 변경해야했습니다. 나는 아직도 이것에 대해 연구 할 것이다. @lulumeya -이게 당신이 의미 한 것입니까?
'f = Fragment ...'줄마다'break'를 추가하는 것을 잊어 버렸습니다. –