Android Fragment 슬라이딩 구성 요소 ViewPager 의 인 스 턴 스 상세 설명
1 어댑터 Fragment PagerAdapter 의 실현
Fragment PagerAdapter 의 파생 클래스 에 대해 서 는 getItem(int)과 getCount()를 다시 쓰 면 됩 니 다.
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> list;
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list = list;
}
// View
@Override
public int getCount() {
return list.size();
}
// getItem(int arg0) , arg0, fragment
@Override
public Fragment getItem(int arg0) {
return list.get(arg0);
}
}
2.두 개의 Fragment 류OrderFragment.java
public class OrderFragment extends Fragment {
// onCreateView() View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view= inflater.inflate(R.layout.fragment_order, container, false);
//View
refresh = view.findViewById(R.id.order_count_refresh);
refresh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//
countStatus();
}
});
return view;
}
}
fragment_order.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical" >
<Button android:id="@+id/fragment1_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="show toast"
/>
</LinearLayout>
MeFragment.java
public class MeFragment extends Fragment {
// onCreateView() View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view= inflater.inflate(R.layout.fragment_me, container, false);
//View
login = view.findViewById(R.id.me_login);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MeFragment.this.getActivity(),
LoginActivity.class));
}
});
return view;
}
}
fragment_me.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffff00"
android:orientation="vertical" >
</LinearLayout>
3 주 activity 실현
public class MainActivity extends FragmentActivity {
private ViewPager mPager;
private List<Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPager = (ViewPager) findViewById(R.id.viewpager);
// fragment
List<Fragment> fragmentList=new ArrayList<Fragment>();
fragmentList.add(new OrderFragment());
fragmentList.add(new MeFragment());
FragAdapter adapter = new FragAdapter(getSupportFragmentManager(), fragments);
// ViewPager
mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList));
mPager.setCurrentItem(0);//
//MyOnPageChangeListener()
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
radioGroup = (RadioGroup) findViewById(R.id.main_tab);
// radioGroup
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.tab_me){
mPager.setCurrentItem(INDEX_ME);
}else if(checkedId == R.id.tab_shoujian){
mPager.setCurrentItem(INDEX_SHOUJIAN);
}
}
});
}
// OnPageChangeListener
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
// , , 。
/**
* arg0: ,
* arg1:
*arg2:
*/
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
//
/**
* arg0
* 1:
* 2:
* 0: ,
*/
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
//
/**
* arg0 Position( )。
*/
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
switch (arg0) {
case INDEX_ME:
radioGroup.check(R.id.tab_me);
break;
case INDEX_SHOUJIAN:
radioGroup.check(R.id.tab_shoujian);
break;
}
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginBottom="60dip"
android:flipInterval="30"
android:persistentDrawingCache="animation"/>
<RadioGroup
android:id="@+id/main_tab"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_height="60dip">
<RadioButton
style="@style/main_tab"
android:id="@+id/tab_shoujian"
<!-- -->
android:drawableTop="@drawable/tab_shoujian_selector"
android:layout_height="match_parent"
android:checked="true"
android:text="****" />
<RadioButton
style="@style/main_tab"
android:id="@+id/tab_me"
android:drawableTop="@drawable/tab_me_selector"
android:layout_height="match_parent"
android:text="*" />
</RadioGroup>
</RelativeLayout>
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.