createView();
// 写一个内部类PageAdapter
pagerAdapter = new PagerAdapter() {
// 判断再次添加的view和之前的view 是否是同一个view
// arg0新添加的view,arg1之前的
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
// 返回数据源长度
@Override
public int getCount() {
return list.size();
}
// 销毁被滑动走的view
/**
-
ViewGroup 代表了我们的ViewPager 相当于ActivityGroup当中的view容器, 添加之前先移除。
- position 第几条数据 Object 被移出的view
*/
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// 移除view
container.removeView(list.get(position));
}
/**
-
instantiateItem ViewPager要现实的view ViewGroup ViewPager position
-
第几条数据
- */
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 获取view添加到容器当中,并返回
View v = list.get(position);
container.addView(v);
return v;
}
};
// 设置我们的adapter
mViewPager.setAdapter(pagerAdapter);
MyBtnOnclick mytouchlistener = new MyBtnOnclick();
//这里是几大线性布局板块的单击
mMyBottemHomeBtn.setOnClickListener(mytouchlistener);
mMyBottemSchooleBtn.setOnClickListener(mytouchlistener);
mMyBottemStudyBtn.setOnClickListener(mytouchlistener);
mMyBottemMytn.setOnClickListener(mytouchlistener);
/**
- 设置ViewPager界面切换监听,监听ViewPager切换第几个界面以及滑动的
*/
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
// arg0 获取 ViewPager里面的界面切换到第几个的
@Override
public void onPageSelected(int arg0) {
// 先清除按钮样式
initBottemBtn();
// 按照对应的view的tag来判断到底切换到哪个界面。
// 更改对应的button状态
int flag = (Integer) list.get((arg0)).getTag();
if (flag == 0) {
} else if (flag == 1) {
} else if (flag == 2) {
} else if (flag == 3) {
}
}
/**
- 监听页面滑动的 arg0 表示当前滑动的view arg1 表示滑动的百分比 arg2 表示滑动的距离
*/
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
/**
- 监听滑动状态 arg0 表示我们的滑动状态 0:默认状态 1:滑动状态 2:滑动停止
*/
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
/**
- 把ViewPager里面要显示的view实例化出来,并且把相关的view添加到一个list当中
*/
private void createView() {
view = this
.getLocalActivityManager()
.startActivity(
"home",
new Intent(MainFragmentActivity.this,
HomeActivity.class)).getDecorView();
// 用来更改下面button的样式的标志
view.setTag(0);
list.add(view);
view1 = MainFragmentActivity.this
.getLocalActivityManager()
.startActivity(
"school",
new Intent(MainFragmentActivity.this,
SchoolActivity.class)).getDecorView();
view1.setTag(1);
list.add(view1);
view3 = MainFragmentActivity.this
.getLocalActivityManager()
.startActivity(
"study",
new Intent(MainFragmentActivity.this,
StudyActivity.class)).getDecorView();
view3.setTag(2);
list.add(view3);
view4 = MainFragmentActivity.this
.getLocalActivityManager()
.startActivity("my",
new Intent(MainFragmentActivity.this, MyActivity.class))
.getDecorView();
view4.setTag(3);
list.add(view4);
}
/**
- 用LinearLayout作为按钮的监听事件
*/
private class MyBtnOnclick implements OnClickListener {
@Override
public void onClick(View v) {
int mBtnid = v.getId();
switch (mBtnid) {
case R.id.MBottemHomeBtn:
// 设置我们的ViewPager跳转那个界面0这个参数和我们的list相关,相当于list里面的下标
mViewPager.setCurrentItem(0);
initBottemBtn();
break;
case R.id.MBottemSchoolBtn:
mViewPager.setCurrentItem(1);
initBottemBtn();
break;
case R.id.MBottemStudyBtn:
mViewPager.setCurrentItem(2);
initBottemBtn();
break;
case R.id.MBottemMyBtn:
mViewPager.setCurrentItem(3);
initBottemBtn();
break;
}
}
}
/**
- 初始化控件的颜色
*/
private void initBottemBtn() {
//这里大家自由发挥
}
热门评论
TabHost 应该早就不用了吧~fragment+pageview是一种解决方案
我想问 为什么楼主不能用代码段