您的位置:首页 > 编程语言 > PHP开发

Tab系列 03 FragmentPagerAdapter + Fragment + ViewPager+TabPageIndicator

2016-07-08 11:14 691 查看
Tab系列 03

  FragmentPagerAdapter + Fragment + ViewPager+TabPageIndicator

效果图:



TabPageIndicator 作为tab的指示器,

ViewPager 内容使用FragmentLayou添加各个板块的内容,

Viewpager的适配器继承FragmentPagerAdapter

适配器加载数据,初始化Viewpager

TabPageIndicator 使用 tabPageIndicator.setViewPager(viewPager, 0);

设置当前指示的tab 控制Viewpager滚到指定的页面

(1)适配器

   注意除了实现getCount 和getItem(),还有一个设置pageTitle的方法,

这是必须的。

@Override
public CharSequence getPageTitle(int position) {
return TITLES[position % TITLES.length];
}


package com.example.csdndemo01;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyAdapter extends FragmentPagerAdapter {

public static final String[] TITLES = new String[] { "业界", "移动", "研发", "程序员杂志", "云计算" };

private List<Fragment> list;
public MyAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list = list;
}

@Override
public CharSequence getPageTitle(int position) {
return TITLES[position % TITLES.length];
}

@Override
public Fragment getItem(int arg0) {
return list.get(arg0);
}

@Override
public int getCount() {
return list.size();
}

}


(2)Fragment

public class Fragment0 extends Fragment {
public  View onCreateView(android.view.LayoutInflater inflater,
android.view.ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab01_content_layout, container, false);
TextView tv = (TextView) view.findViewById(R.id.textView1);
tv.setText(MyAdapter.TITLES[0]);
return view;
};
}


(3)MainActivity.java

  tabPageIndicator.setViewPager(viewPager, 0);设置指示器,控制

 ViewPager滚动到那个界面。

  ViewPager的初始化设置适配器。

  主要是设配器继承FragmentPagerAdapter

package com.example.csdndemo01;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;

import com.viewpagerindicator.TabPageIndicator;

public class MainActivity extends FragmentActivity {
TabPageIndicator tabPageIndicator;
ViewPager viewPager;
Fragment fr1;
Fragment fr2;
Fragment fr3;
Fragment fr4;
List<Fragment> list ;
MyAdapter adapter;
FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
initView();
tabPageIndicator.setViewPager(viewPager, 0);
} catch (Exception e) {
e.printStackTrace();
}

}
/**
* 初始化视图
*/
private void initView() {
list = new ArrayList<Fragment>();
fr1 = new Fragment0();
fr2 = new Fragment1();
fr3 = new Fragment2();
fr4 = new Fragment3();
list.add(fr1);
list.add(fr2);
list.add(fr3);
list.add(fr4);
tabPageIndicator = (TabPageIndicator) findViewById(R.id.tabIndicator);
viewPager = (ViewPager) findViewById(R.id.viewPager);
adapter = new MyAdapter(getSupportFragmentManager(), list);
viewPager.setAdapter(adapter);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: