Android Fragment滑動組件ViewPager的實例詳解
Android Fragment滑動組件ViewPager的實例詳解
1適配器FragmentPagerAdapter的實現
對于FragmentPagerAdapter的派生類,只需要重寫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()是頁面變化監(jiān)聽器
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
radioGroup = (RadioGroup) findViewById(R.id.main_tab);
//給radioGroup設置監(jiān)聽器
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);
}
}
});
}
//實現頁面變化監(jiān)聽器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
//當頁面狀態(tài)改變的時候調用
/**
* 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>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android 開發(fā)之BottomBar+ViewPager+Fragment實現炫酷的底部導航效果
- Android App中使用ViewPager+Fragment實現滑動切換效果
- Android App中ViewPager與Fragment結合的一些問題解決
- Android App在ViewPager中使用Fragment的實例講解
- Android基于ViewPager Fragment實現選項卡
- Android中ViewPager獲取當前顯示的Fragment
- Android中ViewPager實現滑動指示條及與Fragment的配合
- Android中ViewPager和Fragment的使用
相關文章
Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)
這篇文章主要介紹了Android Studio finish()方法的使用與解決app點擊“返回”(直接退出),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Android編程實現使用handler在子線程中更新UI示例
這篇文章主要介紹了Android編程實現使用handler在子線程中更新UI,涉及Android線程與界面布局相關操作技巧,需要的朋友可以參考下2017-09-09
Android開發(fā)之React Navigation 導航欄樣式調整+底部角標消息提示
這篇文章主要介紹了React Navigation 導航欄樣式調整+底部角標消息提示的相關知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05
android 字體顏色選擇器(ColorPicker)介紹
本文將詳細介紹android 字體顏色選擇器(ColorPicker)需要了解更多的朋友可以參考下2012-11-11
android中UIColletionView瀑布流布局實現思路以及封裝的實現
本篇文章主要介紹了android中UIColletionView瀑布流布局實現思路以及封裝的實現,具有一定的參考價值,有興趣的可以了解一下。<BR>2017-02-02

