我有一個名爲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並在整個屏幕上獲取它? (不是現在的小寬度)
沒有XML文件,這是一個猜謎遊戲。我可以假設,雖然Report類的默認高度是'match_parent'。您似乎沒有在構造函數中傳遞任何佈局屬性。 –