0

我有一個名爲CollectionActivity的活動,帶有viewpager。 viewpager擁有它的適配器,PagerAdapter:CollectionPagerAdapter擴展PagerAdapter。PagerAdapter;添加一個LinearLayout類,添加一個佈局 - >小小的寬度

重要instantiateItem方法:

@Override 
public Object instantiateItem(View collection, int position) { 
     LinearLayout lay = null; 
     if(position==0){ 
      lay = new Report(context); 
      lay.setOrientation(LinearLayout.VERTICAL); 
      ((ViewPager) collection).addView(lay); 
     } 
//else for the other positions... 


     return lay; 
} 

在報告類的構造函數(擴展的LinearLayout)看起來像:

public Report(Context context) { 
    super(context); 
    this.context = context; 

    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    view = inflater.inflate(R.layout.activity_report, null); 

    this.addView(view); 

    Button button = new Button(context); 
    button.setText("LinearLayoutExtended"); 

    this.addView(button); 

的問題;我從R.layout.activity_report獲得的視圖在屏幕上顯示出一個非常小的寬度。然而,它下面的按鈕,獲得它所需要的寬度。

activity_report.xml具有填充父項的寬度和高度,並以水平佈局開始,填充文本框,按鈕和其他內容。 Activity_report.xml在eclipse中的預覽中看起來很棒,而且在之前將它用於活動時看起來很好。

爲什麼不能使用this.addView(view)添加我的佈局activity_report.xml並在整個屏幕上獲取它? (不是現在的小寬度)

+0

沒有XML文件,這是一個猜謎遊戲。我可以假設,雖然Report類的默認高度是'match_parent'。您似乎沒有在構造函數中傳遞任何佈局屬性。 –

回答

0

出於某種原因,當我在我的視圖xml文件中沒有自己的圖像時,一切正常。我只是把每個圖像放在自己的線性佈局中 - 現在我可以在整個屏幕上看到整個佈局。

我不知道爲什麼這是問題。如果您知道,請發表評論!

0

當您使用addView(View)時,您必須指定父視圖的LinearLayout.LayoutParams。

+0

的viewpager,這是父已經在XML文件中的參數,可以 機器人:layout_width =「FILL_PARENT」 機器人:layout_height =「FILL_PARENT」 視圖本身,佈局,也fill_parents在XML表示文件。 我真的需要再做一次..? – Malin