Android中的ViewPager设置默认页 [英] Set default page for ViewPager in Android

查看:1114
本文介绍了Android中的ViewPager设置默认页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用下面的code,MAX是2页。默认位置是0,并增加了一个新的页面右侧。我抬高2布局文件。

我怎样才能显示第1页的应用程序启动时,并添加了新的一页向左?
谢谢你。

的main.xml

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:方向=垂直的android:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>
    < android.support.v4.view.ViewPager
        机器人:layout_width =WRAP_CONTENT机器人:layout_height =WRAP_CONTENT
        机器人:ID =@ + ID / pagerView/>
< / LinearLayout中>

的Java code

 公共类MyPagerActivity延伸活动{
    私人上下文的背景下;
    私人诠释PAGENUMBER;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        上下文=这一点;        ViewPager pagerView =(ViewPager)findViewById(R.id.pagerView);
        pagerView.setAdapter(新AwesomePagerAdapter());    }
    私有类AwesomePagerAdapter扩展PagerAdapter {        @覆盖
        公共无效destroyItem(查看收集,INT位置,对象视图){
            ((ViewPager)集合).removeView((视图)视图);
        }        @覆盖
        公共无效finishUpdate(查看为arg0){
            // setPageTitles(getPageNumber());
        }        @覆盖
        公众诠释的getCount(){
            返回2;
        }        @覆盖
        公共对象instantiateItem(查看收集,INT位置){
            / * TextView的电视=新的TextView(MyPagerActivity.this);
        tv.setText(卓悦PAUG+位置);
        tv.setTextColor(Color.WHITE);
        tv.setTextSize(30);        ((ViewPager)集合).addView(电视,0);        返回电视; * /            查看查看= getViewToShow(位置);
            ((ViewPager)集合).addView(查看,0);
            返回视图。
        }        @覆盖
        公共布尔isViewFromObject(查看视图,Object对象){
            返回查看==((查看)对象);
        }        @覆盖
        公共无效restoreState(Parcelable为arg0,ARG1的ClassLoader){
            // TODO自动生成方法存根        }        @覆盖
        公共Parcelable saveState和(){
            // TODO自动生成方法存根
            返回null;
        }        @覆盖
        公共无效startUpdate(查看为arg0){
            // TODO自动生成方法存根        }    }
    私人查看getViewToShow(INT位置){
        查看查看= NULL;
        查看布局;
        LayoutInflater mInflater =(LayoutInflater)
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        开关(位置){        情况下0:
            布局= mInflater.inflate(R.layout.elements,NULL);
            鉴于=布局;
            打破;
        案例1:查看=
            布局= mInflater.inflate(R.layout.elements2,NULL);
        鉴于=布局;        打破;
        }
        返回视图。
    }}


解决方案

您是否尝试过使用 setCurrentItem 方法?

I am using the following code, MAX is 2 pages. By default the position is 0 and adds a new page to the right. I inflate two layout files.

How can I show the page1 when the app starts and add a new page to the left ? Thanks.

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <android.support.v4.view.ViewPager
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:id="@+id/pagerView" />


</LinearLayout>

Java code

public class MyPagerActivity extends Activity {
    private Context context;    
    private int pageNumber;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        context = this;

        ViewPager pagerView = (ViewPager)findViewById(R.id.pagerView);
        pagerView.setAdapter(new AwesomePagerAdapter());    

    }


    private class AwesomePagerAdapter extends PagerAdapter{

        @Override
        public void destroyItem(View collection, int position, Object view) {
            ((ViewPager) collection).removeView((View)view);            
        }

        @Override
        public void finishUpdate(View arg0) {
            //setPageTitles(getPageNumber());
        }

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public Object instantiateItem(View collection, int position) {
            /*  TextView tv = new TextView(MyPagerActivity.this);
        tv.setText("Bonjour PAUG " + position);
        tv.setTextColor(Color.WHITE);
        tv.setTextSize(30);

        ((ViewPager) collection).addView(tv,0);

        return tv;*/

            View view = getViewToShow(position);
            ((ViewPager) collection).addView(view,0);
            return view;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==((View)object);
        }

        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public Parcelable saveState() {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public void startUpdate(View arg0) {
            // TODO Auto-generated method stub

        }

    }


    private View getViewToShow(int position){
        View view = null;
        View layout; 
        LayoutInflater mInflater =  (LayoutInflater)
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        switch(position){

        case 0: 
            layout  = mInflater.inflate(R.layout.elements, null);
            view = layout;
            break;
        case 1: view = 
            layout  = mInflater.inflate(R.layout.elements2, null);
        view = layout;

        break;
        }
        return view;
    }

}

解决方案

Have you tried using the setCurrentItem method?

这篇关于Android中的ViewPager设置默认页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆