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) {
        }
    }
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号