我有一个简单的视图寻呼机和一个可以在寻呼机中显示图像的适配器。当我创建视图寻呼机并将其添加到主布局时,一切正常......但我真的想将 ViewPager 封装在一个包含其他元素的复合视图中,所以我转租了 FrameLayout:
public class DatesFilterView extends FrameLayout
{
private final static String TAG = "DatesListFragment";
ViewPager mPager;
public DatesFilterView(Context context) {this(context, null, 0);}
public DatesFilterView(Context context, AttributeSet attrs, int defStyle) {this(context, attrs);}
public DatesFilterView(Context context, AttributeSet attrs)
{
super(context, attrs);
mPager = new ViewPager(context);
int imageArray[] = { R.drawable.tab_active_dates, R.drawable.tab_active_events, R.drawable.tab_active_friends, R.drawable.tab_active_location };
ImageArrayPageAdapter adapter = new ImageArrayPageAdapter(context, imageArray);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
this.addView(mPager,0);
this.requestLayout();
TextView tv = new TextView(context);
tv.setText("Custom View is attached");
this.addView(tv,1);
}
...
所以文本视图显示正常,但视图寻呼机根本不显示任何图像......
主要活动中的相同代码实际上将正确显示寻呼机......
mPager = new ViewPager(context);
int imageArray[] = { R.drawable.tab_active_dates, R.drawable.tab_active_events, R.drawable.tab_active_friends, R.drawable.tab_active_location };
ImageArrayPageAdapter adapter = new ImageArrayPageAdapter(context, imageArray);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
所以我将这种行为隔离为将寻呼机嵌套在复合视图中......
我忘记了什么吗?
编辑 1: 我在页面适配器中添加了以下内容:
public int getItemPosition (Object object) { return POSITION_NONE; }
现在第一页是空的,只有在移动到下一页然后再返回后才会显示.. :-\