viewpager中嵌套fragment实现联动
activity-main中
线性布局竖向排列
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:id="@+id/view_pager" > </android.support.v4.view.ViewPager> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/rg" android:orientation="horizontal" > <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="漫画" android:id="@+id/rb1" android:button="@null" android:gravity="center" android:textSize="20sp" /> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="发现" android:id="@+id/rb2" android:button="@null" android:gravity="center" android:textSize="20sp" /> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="V社会" android:id="@+id/rb3" android:gravity="center" android:textSize="20sp" android:button="@null" /> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="我的" android:gravity="center" android:textSize="20sp" android:id="@+id/rb4" android:button="@null" /> </RadioGroup>
mainactivity类
public class MainActivity extends AppCompatActivity { private ViewPager view_pager; private ArrayList<Fragment> fragments; private MyFragement_one myFragement_one; private MyFragement_two myFragement_two; private MyFragement_three myFragement_three; private MyFragement_four myFragement_four; private RadioButton rb1; private RadioButton rb2; private RadioButton rb3; private RadioButton rb4; private RadioGroup rg; private MyAdapter myAdapter; private int index; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找视图 initView(); //加载数据 initData(); //点击监听 initClick(); } private void initClick() { view_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: { rb1.setChecked(true); } break; case 1: { rb2.setChecked(true); } break; case 2: { rb3.setChecked(true); } break; case 3: { rb4.setChecked(true); } break; } } @Override public void onPageScrollStateChanged(int state) { } }); //rg 点击rg跳转 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId){ case R.id.rb1: index = 0; break; case R.id.rb2: index = 1; break; case R.id.rb3: index = 2; break; case R.id.rb4: index = 3; break; } if (view_pager.getCurrentItem() != index){ view_pager.setCurrentItem(index,false); } } }); } private void initData() { myFragement_one = new MyFragement_one(); myFragement_two = new MyFragement_two(); myFragement_three = new MyFragement_three(); myFragement_four = new MyFragement_four(); fragments = new ArrayList<>(); fragments.add(myFragement_one); fragments.add(myFragement_two); fragments.add(myFragement_three); fragments.add(myFragement_four); myAdapter = new MyAdapter(getSupportFragmentManager(),fragments); view_pager.setAdapter(myAdapter); } private void initView() { view_pager = (ViewPager) findViewById(R.id.view_pager); rb1 = (RadioButton) findViewById(R.id.rb1); rb2 = (RadioButton) findViewById(R.id.rb2); rb3 = (RadioButton) findViewById(R.id.rb3); rb4 = (RadioButton) findViewById(R.id.rb4); rg = (RadioGroup) findViewById(R.id.rg); rg.setOnClickListener(this); }
}
myadapter类
public class MyAdapter extends FragmentPagerAdapter{ private Context context; private ArrayList<Fragment> list = new ArrayList<>(); public MyAdapter(FragmentManager fm, ArrayList<Fragment> list) { super(fm); this.list = list; } public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list != null ? list.size() : 0; } }
有四个fragment类
fragment有oncreatview方法和onviewcreated方法
就可以实现简单的联动了。