子item包含3个控件,在滑动时,最下方的控件居然消失了,其他两个正常。
分析:应该是绑定子item时的根view问题。
经测试多种方法,第一种方法是在子item布局多套嵌一层跟布局可解决此问题:
如图是会出显示不全bug的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="60dp" android:layout_height="120dp" android:orientation="vertical" > <RelativeLayout android:id="@+id/relativeLayout" android:layout_width="60dp" android:layout_height="30dp"> <TextView android:id="@+id/t1" android:layout_width="20dp" android:layout_height="15dp" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:background="@drawable/duanwei_baiyin"/> </RelativeLayout> <qiuutil.RoundImageView android:id="@+id/i1" android:layout_width="60dp" android:layout_height="60dp" android:layout_below="@+id/relativeLayout" android:layout_centerHorizontal="true" android:scaleType="centerCrop" android:src="@drawable/ic_zhanweitu"></qiuutil.RoundImageView> <TextView android:id="@+id/t2" android:layout_width="60dp" android:layout_height="30dp" android:gravity="center" android:paddingTop="15dp" android:text="XXX中心" android:textColor="@color/w" android:textSize="12sp" /> </LinearLayout>
以下是正常的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="60dp" android:layout_height="120dp" android:orientation="vertical" > <LinearLayout android:layout_width="60dp" android:layout_height="120dp" android:orientation="vertical"> <RelativeLayout android:id="@+id/relativeLayout" android:layout_width="60dp" android:layout_height="30dp"> <TextView android:id="@+id/t1" android:layout_width="20dp" android:layout_height="15dp" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:background="@drawable/duanwei_baiyin"/> </RelativeLayout> <qiuutil.RoundImageView android:id="@+id/i1" android:layout_width="60dp" android:layout_height="60dp" android:layout_below="@+id/relativeLayout" android:layout_centerHorizontal="true" android:scaleType="centerCrop" android:src="@drawable/ic_zhanweitu"></qiuutil.RoundImageView> <TextView android:id="@+id/t2" android:layout_width="60dp" android:layout_height="30dp" android:gravity="center" android:paddingTop="15dp" android:text="XXX中心" android:textColor="@color/w" android:textSize="12sp" /> </LinearLayout> </LinearLayout>
第二种方法:
@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new MyViewHolder(LayoutInflater.from(FaBuBiSaiZhiActivity.this).inflate(R.layout.fabubisai_viewpager_iamge, parent, false)); }如果缺少parent会照成之前的问题。