android-pageviewer实现linearlayout的切换

添加jar包 android-support-v4.jar

 

在布局文件中需要插入PageViewer的地方写入如下代码:

<android.support.v4.view.ViewPager
android:id="@+id/pageViewer2"
android:layout_width="match_parent"
android:layout_height="90dp" />

 

写子模块的layout和java文件(此处略);

 

在引用这个布局文件的java文件中,首先声明一个需要的变量来启动Intent,获取view:

 private LocalActivityManager mManager;

 

(OnCreate中插入如下代码)

mManager = new LocalActivityManager(this,true);
mManager.dispatchCreate(savedInstanceState);

为pageviewer填充intent内容,写入如下代码:

/**
* 初始化PageViewer
*/
private void initPagerViewer1() {
final ArrayList<View> list = new ArrayList<View>();
Intent intent = new Intent(this, PageItemActivity.class);
intent.putExtra("Category","Friend_Channel");
intent.putExtra("Page","1");
list.add(getView("A", intent));
Intent intent2 = new Intent(this, PageItemActivity.class);
intent2.putExtra("Category","Friend_Channel");
intent2.putExtra("Page","2");
list.add(getView("B", intent2));
Intent intent3 = new Intent(this,PageItemActivity.class);
intent3.putExtra("Category","Friend_Channel");
intent3.putExtra("Page","3");
list.add(getView("C", intent3));
Intent intent4 = new Intent(this,PageItemActivity.class);
intent4.putExtra("Category","Friend_Channel");
intent4.putExtra("Page","4");
list.add(getView("D", intent4));
Intent intent5 = new Intent(this,PageItemActivity.class);
intent5.putExtra("Category","Friend_Channel");
intent5.putExtra("Page","5");
list.add(getView("E", intent5));


mPager1.setAdapter(new MyPagerAdapter(list));
mPager1.setCurrentItem(0);
}

/**
* 通过activity获取视图
* @param id
* @param intent
* @return
*/
private View getView(String id, Intent intent) {
return mManager.startActivity(id, intent).getDecorView();
}

为PageViewer实现自己的适配器:

/**
* Pager适配器
*/
public class MyPagerAdapter extends PagerAdapter {
List<View> list = new ArrayList<View>();
public MyPagerAdapter(ArrayList<View> list) {
this.list = list;
}

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

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

@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
ViewPager pViewPager = ((ViewPager) arg0);
pViewPager.addView(list.get(arg1));
return list.get(arg1);
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {

}

@Override
public Parcelable saveState() {
return null;
}

@Override
public void startUpdate(View arg0) {
}


}

转载于:https://www.cnblogs.com/KevinFromJail/archive/2012/11/02/2751013.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值