我正在制作一个ViewPager,用于显示一系列图片,这些图片通过它们在资源值数组中的位置进行标识。以下是适配器的instantiateItem
代码:
//indexes the images
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0.getTag().equals(arg1);
}
//serves the views
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView view = new ImageView(container.getContext());
view.setScaleType(ScaleType.FIT_CENTER);
view.setTag(position);
view.setImageResource(mImages.get(position));
container.addView(view, position);
return view;
}
它没有显示出来。查看container.getChildAt(0)
可以确认布局参数设置为MATCH_PARENT
,但宽度和高度为0。容器自身的宽度和高度是屏幕尺寸(如预期)。
将代码更改为
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView view = (ImageView) View.inflate(container.getContext(), R.layout.imageview, null);
view.setScaleType(ScaleType.FIT_CENTER);
view.setTag(position);
view.setImageResource(mImages.get(position));
container.addView(view, position);
return view;
}
当设置布局中有ImageView
控件的R.layout.imageview
为背景时,它并没有起作用。将背景颜色设置为任意可见值可以显示视图实际上是不可见的。发生了什么事情?