public class Pdintroduction extends FragmentActivity { private TextView[] RB; private ViewPager viewpager;//用来存放三个不同的fragment private LinearLayout tab_container_layout;//包含三个textView的容器 private String[] titles={"商品","详情","评价"}; private Fragment[] fragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pdintroduction); init(); //设置ViewPager的适配器 viewpager.setAdapter(new MyAdpater(getSupportFragmentManager())); } private void init() { viewpager =(ViewPager)findViewById(R.id.ViewPager); viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){//添加点击选项卡来切换页面的监听器 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { selectedTitle(position); } @Override public void onPageScrollStateChanged(int state) { } }); fragments = new Fragment[3]; fragments[0] = new Fragment1(); fragments[1] = new Fragment2(); fragments[2] = new Fragment3(); tab_container_layout =(LinearLayout)findViewById(R.id.tab_container_layout);//关联XML中的容器控件 int count = tab_container_layout.getChildCount();//得到这个容器控件中textView的数量 RB = new TextView[count]; //从容器中的得到子控件 for (int i = 0; i < count;i++){ RB[i] = (TextView) tab_container_layout.getChildAt(i); RB[i].setText(titles[i]); RB[i].setTag(i); //可被单击 RB[i].setEnabled(true); //选项卡单击,用户希望换一个选项 RB[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int item = (Integer) v.getTag(); viewpager.setCurrentItem(item); selectedTitle(item); } }); } //不可被单击 RB[0].setEnabled(false); //表示为选中项 RB[0].setTextColor(Color.RED); } //重新设置选项卡的选中 private void selectedTitle(int index){ for (int i = 0;i < RB.length;i++){ RB[i].setTextColor(Color.BLACK); RB[i].setEnabled(true); } RB[index].setTextColor(Color.RED); RB[index].setEnabled(false); }
class MyAdpater extends FragmentPagerAdapter { public MyAdpater(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragments[position]; } @Override public int getCount() { return fragments.length; } } }
在XML布局文件中的设置
<LinearLayout android:id="@+id/tab_container_layout" android:layout_width="match_parent" android:layout_height="35dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:textSize="20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:textSize="20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:textSize="20dp" /> </LinearLayout> <android.support.v4.view.ViewPager android:id="@+id/ViewPager" android:layout_width="match_parent" android:layout_height="535dp"> </android.support.v4.view.ViewPager>