이렇게하면 두통이 생깁니다. 내 애플 리케이션은 ViewPager
4 탭이 포함되어 있다고하자. 각 탭 내에 여러 하위 조각이 있어야합니다. 즉, 각 탭에는 하나 이상의보기가 있습니다. 난 완전히 각 탭에 여러 개의 하위 단편이있는 android-viewpager
ViewPager
public class FragActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frag_main);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
PagerAdapter adapter = new FFNPagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
pager.setOffscreenPageLimit(3);
tabs.setViewPager(pager);
}
}
그때가 처음로드 설정 얻는 FragmentActivity
이 .... 어떻게 이것을 달성하는 단서가 없다 내 FragmentPagerAdapter
public class PagerAdapter extends FragmentPagerAdapter implements TextAndIconTabProvider {
private final String[] TITLES = { "FIRST", "SECOND", "THIRD", "FORTH" };
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment frag = new Fragment();
switch (position) {
case 1:
frag = new FirstFrag();
break;
case 2:
frag = new SecondFrag();
break;
case 3:
frag = new ThirdFrag();
break;
case 4:
frag = new ForthFrag();
break;
}
return frag;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return TITLES.length;
}
}
위를 나에게 ViewPager
의 4 개의 활성 탭이있는 작업을 제공합니다. 그런 다음 4 개의 개별 단편을 모두해야합니다. 나는 아래에 하나의 예를 든다.
public class FirstFrag extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.firstfrag, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
Button btn1 = (Button) getActivity().findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// what should I put in this block??????
Fragment fragment = new FirstFragSub1();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.pager, fragment); //<<------what should i replace???????
transaction.commitAllowingStateLoss();
}
});
}
}
은 FirstFragSub1
의 OnCreateView
불려갑니다하지만 화면에 표시 아무것도 표시되지 않습니다. 기본적으로 공백입니다. 나는 올바른 방법으로해서는 안되는 R.id.pager
을 대체함으로써 알았습니다. 저는 초기 생각이 무엇인지 예를 든 것뿐입니다. 여기
내이 FirstFragSub1
public class FirstFragSub1 extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
Log.i("FirstFragSub1","onCreateView is called");
return inflater.inflate(R.layout.subone, container, false);
}
}
누군가가 저를 도와 주실 수 있습니까? 나는 정말로 생각에서 ... 감사합니다