我在显示以下行为的片段中有一个查看器。从第 2 页开始正确显示,但第一页显示为好像它位于容器视图的背景后面 - 好像它的 z-index 低于背景(z-indices 向用户增加) - 请参阅图片链接如下。
页面实例化的代码是:
pager.setAdapter(new PagerAdapter() {
@Override
public void destroyItem(ViewGroup container, int position, Object item) {
container.removeView((View) item);
}
@Override
public int getCount() {
return mImages.size();
}
@Override
public View instantiateItem(ViewGroup container, final int position) {
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.image_selector, null, false);
final ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(mImages.get(position));
container.addView(layout);
return layout;
}
@Override
public boolean isViewFromObject(View view, Object item) {
return item.equals(view)
}
});
..没什么特别的。
viewpager 片段的布局是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff2288dd">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/help1" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/text1"
android:layout_above="@+id/text2"
android:layout_margin="12dip" />
<TextView
android:id="@id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/help2" />
</RelativeLayout>
对于每页图像:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true" />
</RelativeLayout>
再一次,没有什么不寻常的。
Froyo (2.2) 和 Gingerbread (2.3) 在物理设备和模拟器以及运行 4.2 的物理设备上存在行为。
更奇怪的是,当一个图像被触摸以选择它时,一个新的片段会替换原始的浏览器片段,如果选择的图像来自浏览器的第一页,那么所描述的行为也会出现在那里——尽管片段完全不同的布局(以及没有定义背景的新片段)。
所选图像片段的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true" />
</RelativeLayout>
下面参考图片。
有谁知道会发生什么?