2012-05-04 28 views
1

我正在嘗試使用視圖傳呼機來創建一個圖庫。儘管如此,它始終是位置1的更新,而我試圖更新當前頁面(默認爲0)。查看傳呼機不會膨脹好頁面

首先,我創建了一個由尋呼機充氣的視圖。該視圖由4個ImageView和4個textview組成。

然後,我創建了一個尋呼機適配器:

public class LivePagerAdapter extends PagerAdapter { 

    private CameraList cameras = null; 

    public LivePagerAdapter(CameraList cams) 
    { 
     this.cameras = cams; 
    } 

    @Override 
    public int getCount() { 
     return this.cameras.size() /4; // 4 imageview in a page 
    } 

    public void setCameras(CameraList cams) 
    { 
     this.cameras = cams; 
    } 

    @Override 
    public Object instantiateItem(View container, int position) { 
     LayoutInflater inflater = LayoutInflater.from(container.getContext()); 

     View view = inflater.inflate(R.layout.pager,null); 
     ((ViewPager) container).addView(view,0); 
     return view; 
    } 
} 

最後,在我的活動我正在實例化尋呼機這樣的:

adapter = new LivePagerAdapter(this.listeCamera); 
pager = (ViewPager) findViewById(R.id.camspager); 
pager.setAdapter(adapter); 
pager.setCurrentItem(0); 

我正在初始化一個數組後,我4 imageview:

tabImageView.add((ImageView) findViewById(R.id.cam1)); //Imageview located in the view loaded by the pager 
tabImageView.add((ImageView) findViewById(R.id.cam2)); 
tabImageView.add((ImageView) findViewById(R.id.cam3)); 
tabImageView.add((ImageView) findViewById(R.id.cam4)); 

當需要我在imageview中添加圖像。

它似乎工作,除了我要求傳呼機從位置0開始,這是從位置1的視圖更新與我的圖像。

當我使用findViewById(somethingInflatedByThePager)我需要它是當前頁面,我該怎麼做?

回答

3

如果通過((ViewPager) container).addView(view);

+0

這麼簡單,由於更換((ViewPager) container).addView(view,0);會發生什麼! – grunk

+1

它可以幫助你的耳朵。不要忘記,如果你使用eclipse,當你把光標放在一個方法上時,你可以有如下的快速描述:void android.view.ViewGroup.addView(View child,int index) public void addView(View child ,int index) 從以下版本開始:API級別1 添加子視圖。如果沒有設置佈局參數,則此子視圖的默認參數設置在該子級上。 參數 **孩子\t要添加的子視圖** **索引\t要添加孩子的位置** –