赞
踩
- public class FirstFragment extends Fragment {
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.first_fragment,container,false);
- return view;
- }
- }
三个Fragment都是一样的实现,只不过加载了不一样的布局文件。布局文件随便拖拽了几个控件上去,区分彼此。
- public class FragmentViewPagerAdapter extends FragmentPagerAdapter {
-
- //需要显示的Fragment
- private List<Fragment> fragments;
-
- public FragmentViewPagerAdapter(FragmentManager fm,List<Fragment> fragments){
- super(fm);
- this.fragments=fragments;
- }
-
- @Override
- public Fragment getItem(int position) {
- //得到具体的Fragment
- return fragments.get(position);
- }
-
- @Override
- public int getCount() {
- //返回数量
- return fragments.size();
- }
- }

- public class MainActivity extends FragmentActivity {
-
- private ViewPager viewPager;
- private List<Fragment> fragmentList;
- private TextView tvTab1,tvTab2,tvTab3;
- private int currIndex;
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initView();
- initViewPager();
- }
-
- private void initView(){
- tvTab1= (TextView) findViewById(R.id.tv_tab1);
- tvTab2= (TextView) findViewById(R.id.tv_tab2);
- tvTab3= (TextView) findViewById(R.id.tv_tab3);
-
- tvTab1.setOnClickListener(new tvOnClickListener(0));
- tvTab2.setOnClickListener(new tvOnClickListener(1));
- tvTab3.setOnClickListener(new tvOnClickListener(2));
- }
-
- //textView的监听器,当按下textview控件时,可跳转到对应Fragment。
- private class tvOnClickListener implements View.OnClickListener{
-
- private int index=0;
-
- public tvOnClickListener(int index){
- this.index=index;
- }
-
- @Override
- public void onClick(View view) {
- viewPager.setCurrentItem(index);
- }
- }
-
- private void initViewPager(){
- viewPager= (ViewPager) findViewById(R.id.viewpager);
- fragmentList=new ArrayList<Fragment>();
- fragmentList.add(new FirstFragment());
- fragmentList.add(new SecondFragment());
- fragmentList.add(new ThirdFragment());
-
- //设置适配器
- viewPager.setAdapter(new FragmentViewPagerAdapter(getSupportFragmentManager(), fragmentList));
- viewPager.setCurrentItem(0);
- tvTab1.setTextColor(Color.RED);
- //设置监听
- viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
- }
-
- private class MyOnPageChangeListener implements ViewPager.OnPageChangeListener{
-
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @Override
- public void onPageSelected(int position) {
- currIndex=position;
- //使TextView改变颜色,指示现在是哪个Fragment。
- switch (position){
- case 0:
- tvTab1.setTextColor(Color.RED);
- tvTab2.setTextColor(Color.WHITE);
- tvTab3.setTextColor(Color.WHITE);
- break;
- case 1:
- tvTab1.setTextColor(Color.WHITE);
- tvTab2.setTextColor(Color.RED);
- tvTab3.setTextColor(Color.WHITE);
- break;
- case 2:
- tvTab1.setTextColor(Color.WHITE);
- tvTab2.setTextColor(Color.WHITE);
- tvTab3.setTextColor(Color.RED);
- break;
- }
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- }
- }

4、xml布局文件
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity"
- android:orientation="vertical">
-
- <LinearLayout
- android:background="#009959"
- android:layout_width="match_parent"
- android:layout_height="@dimen/topbarheight"
- android:orientation="horizontal">
- <TextView
- android:id="@+id/tv_tab1"
- android:layout_weight="1"
- android:textSize="18sp"
- android:text="@string/tab1_title"
-
- android:gravity="center"
- android:layout_gravity="center_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <TextView
- android:id="@+id/tv_tab2"
- android:layout_weight="1"
- android:textSize="18sp"
-
- android:text="@string/tab2_title"
- android:gravity="center"
- android:layout_gravity="center_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <TextView
- android:id="@+id/tv_tab3"
- android:layout_weight="1"
- android:textSize="18sp"
-
- android:text="@string/tab3_title"
- android:gravity="center"
- android:layout_gravity="center_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- </LinearLayout>
-
- <android.support.v4.view.ViewPager
- android:id="@+id/viewpager"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:flipInterval="30"
- android:persistentDrawingCache="animation"/>
-
- </LinearLayout>

- //透明状态栏
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
- //透明导航栏
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
xml布局中加入:
- android:fitsSystemWindows="true"
- android:clipToPadding="true"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。