我有一个名为 CollectionActivity 的活动,带有一个 viewpager。viewpager 拥有它自己的适配器,PagerAdapter:CollectionPagerAdapter 扩展了 PagerAdapter。
重要的 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;
}
Report 类(扩展 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 获得的视图在屏幕上显示的宽度非常小。然而,它下面的 Button 获得了它需要的宽度。
activity_report.xml 具有填充父级的宽度和高度,并以填充文本框、按钮和其他内容的水平布局开始。Activity_report.xml 在 Eclipse 的预览中看起来很棒,并且在我之前将它用于活动时看起来很好。
为什么我不能使用 this.addView(view) 添加我的布局 activity_report.xml 并将其显示在整个屏幕上?(不像现在这样窄)