Android RecyclerView弄乱了layout_weight

时间:2016-06-12 13:02:55

标签: android android-recyclerview android-layout-weight

我在RecyclerView内有一个非常简单的DialogFragment 单行项目应该显示图像,名字和姓氏以及一些数字。它们在layout_weight的帮助下布局,以平等分享可用空间。

出于某种原因,某些项目似乎随机地计算出layout_weight错误。

请注意,在编辑器预览中,之后滚动查看有问题的项目,问题得到解决,布局恢复正常。

正如你在图像中看到的那样,在第一个项目中(它并不总是(只是)第一个项目),图像会占用太多空间。

problem

我的布局如下;

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/dodger_blue"
    android:orientation="horizontal"
    android:padding="8dp">

    <ImageView
        android:id="@+id/iv_face"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:orientation="vertical">

        <TextView
            android:id="@+id/et_first_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLargeInverse"
            android:textStyle="bold"/>

        <TextView
            android:id="@+id/et_surname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMediumInverse"/>

    </LinearLayout>

    <TextView
        android:id="@+id/et_id"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMediumInverse"/>

    <TextView
        android:id="@+id/et_place"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.8"
        android:gravity="center|end"
        android:textAppearance="?android:attr/textAppearanceLargeInverse"/>
</LinearLayout>

我的适配器; https://gist.github.com/StefanDeBruijn/f032eac6619ac1b8420e352b883ea4dd

1 个答案:

答案 0 :(得分:0)

我怀疑这种情况正在发生,因为在图像视图中设置了大图像。因为您已将图像的高度设置为match_parent。为了保持纵横比,它也在宽度上扩展。

您可能应该尝试将此属性添加到xml文件中并修复图像的高度。

机器人:scaleType =&#34; fitXY&#34; 机器人:layout_height = 100dp

如果这可以解决您的问题,请告诉我。