Viewpager+Fragment 导航栏联动

来源:互联网 发布:淘宝价格数字字体 编辑:程序博客网 时间:2024/06/06 00:42


第一步:    布局

      

  <RadioGroup android:layout_width="match_parent"       android:layout_height="wrap_content"       android:orientation="horizontal"       android:id="@+id/rg"       android:layout_alignParentBottom="true">                     <RadioButton android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:id="@+id/rb1"           android:text="章节"           android:button="@null"           android:gravity="center_horizontal"           android:layout_weight="1"           android:background="@drawable/rb_selector"           android:checked="true"/>               <RadioButton android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:id="@+id/rb2"           android:text="小说"            android:button="@null"           android:gravity="center_horizontal"           android:layout_weight="1"           android:background="@drawable/rb_selector"/>                 <RadioButton android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:id="@+id/rb3"           android:text="我的"            android:button="@null"           android:gravity="center_horizontal"           android:layout_weight="1"           android:background="@drawable/rb_selector"/>                 </RadioGroup>         <android.support.v4.view.ViewPager       android:id="@+id/vp"       android:layout_width="match_parent"       android:layout_height="match_parent"       android:layout_above="@id/rg"       ></android.support.v4.view.ViewPager>

第二步  : main 里的逻辑

  

package com.example.week1_7month;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.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.Menu;import android.view.MenuItem;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;public class MainActivity extends FragmentActivity {private List<Fragment> lists=new ArrayList<Fragment>();private RadioGroup rg;private ViewPager vp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);vp = (ViewPager) findViewById(R.id.vp);rg = (RadioGroup) findViewById(R.id.rg);//构造数据lists.add(new ZhangjieFragment());lists.add(new XiaoShuoFragment());lists.add(new WodeFragment());//构造适配器MyAdapter adapter=new MyAdapter(getSupportFragmentManager());//设置一下vp.setAdapter(adapter);vp.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {//设置选中的radiobuttonrg.check(rg.getChildAt(arg0).getId());}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch(checkedId){case R.id.rb1:vp.setCurrentItem(0);break;case R.id.rb2:vp.setCurrentItem(1);break;case R.id.rb3:vp.setCurrentItem(2);break;}}});}class MyAdapter extends FragmentPagerAdapter{public MyAdapter(FragmentManager fm) {super(fm);// TODO Auto-generated constructor stub}@Overridepublic Fragment getItem(int arg0) {// TODO Auto-generated method stubreturn lists.get(arg0);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn lists.size();}}}