利用viewPager实现底部导航,各个layout的对应方法如何同时实现

L_MoonNight 2018-05-23 04:00:18
发现用viewPager只是实现了页面的显示,如何同时实现页面的方法。页面的方法已经写完,就是如何实现导航?本人菜鸟一枚,都是现学现卖
viewPager的导航方法和viewPager的适配器代码如下
public class Bottom_Guide extends Activity {  
private ViewPager viewPager;
private RadioGroup radioGroup;
private RadioButton tab1;
private RadioButton tab2;
private RadioButton tab3;

private List<View> viewList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bottom_guide);

viewPager = (ViewPager) findViewById(R.id.viewpager);
radioGroup = (RadioGroup) findViewById(R.id.radiogroup);
tab1 = (RadioButton) findViewById(R.id.tab1);
tab2 = (RadioButton) findViewById(R.id.tab2);
tab3 = (RadioButton) findViewById(R.id.tab3);

initViewPager();
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.tab1:
viewPager.setCurrentItem(0);
break;
case R.id.tab2:
viewPager.setCurrentItem(1);
break;
case R.id.tab3:
viewPager.setCurrentItem(2);
break;
}
}
});
}

private void initViewPager() {
viewList = new ArrayList<View>();
viewList.add(LayoutInflater.from(this).inflate(R.layout.act_map,
null));
viewList.add(LayoutInflater.from(this).inflate(R.layout.act_search,
null));
viewList.add(LayoutInflater.from(this).inflate(R.layout.act_mine,
null));
viewPager.setAdapter(new MyViewPagerAdapter());
viewPager.setOnPageChangeListener(new OnPageChangeListener() {

public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
tab1.setChecked(true);
tab2.setChecked(false);
tab3.setChecked(false);
break;
case 1:
tab1.setChecked(false);
tab2.setChecked(true);
tab3.setChecked(false);
break;
case 2:
tab1.setChecked(false);
tab2.setChecked(false);
tab3.setChecked(true);
break;
}
}

public void onPageScrolled(int arg0, float arg1, int arg2) {
}

public void onPageScrollStateChanged(int arg0) {
}
});
}

private class MyViewPagerAdapter extends PagerAdapter {

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

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = viewList.get(position);
container.addView(view);
return view;
}

}
}
...全文
1095 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzzhehe 2018-05-28
  • 打赏
  • 举报
回复
setChecked确定会调用这个方法setOnCheckedChangeListener
moonFY 2018-05-24
  • 打赏
  • 举报
回复
楼上的方法
L_MoonNight 2018-05-24
  • 打赏
  • 举报
回复
引用 1 楼 qq_16400583 的回复:
public void onPageSelected(int id) { view_pager.setCurrentItem(id); }
大佬,我的方法就是在onPageSelected中判断Radiobutton的选择状态,再由状态判断执行setCurrentItem。这种方法不是一样吗?
zzzhehe 2018-05-23
  • 打赏
  • 举报
回复
public void onPageSelected(int id) { view_pager.setCurrentItem(id); }

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧