android data binding jetpack VIIII 第一坑

时间:2024-04-27 12:26:13
 <LinearLayout
android:id="@+id/ll_item_home_page_pics"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rl_item_home_page_top"
android:layout_marginTop="10dp"
android:orientation="horizontal"> <ImageView
android:id="@+id/iv_pic0"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/tempic"
bind:url="@{product.imgUrls.get(0)}"
tools:ignore="ContentDescription" /> <ImageView
android:id="@+id/iv_pic1"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/tempic1"
bind:url="@{product.imgUrls.get(1)}"
tools:ignore="ContentDescription" /> <ImageView
android:id="@+id/iv_pic2"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/tempic2"
bind:url="@{product.imgUrls.get(2)}"
tools:ignore="ContentDescription" />
</LinearLayout>

如上代码,三张图片一行均分布局,LinearLayout + android:layout_weight="1" 很正常的做法。使用glide给图片绑定。

结果-->>>>>图片全出不来。

简单分析也不知道哪个环节出问题了。根本问题是图片的宽高没了。

项目紧先给个解决方案,后期再分析原因。

改用tablelayout 后正常。没到测试期,不知道其它版本系统是不是有问题。

 <TableLayout
android:id="@+id/ll_item_home_page_pics"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rl_item_home_page_top"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:stretchColumns="*"> <TableRow> <ImageView
android:id="@+id/iv_pic0"
android:layout_width="0dp"
android:layout_height="80dp"
android:scaleType="fitXY"
android:src="@drawable/tempic"
bind:url="@{product.imgUrls.get(0)}"
tools:ignore="ContentDescription" /> <ImageView
android:id="@+id/iv_pic1"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:scaleType="fitXY"
android:src="@drawable/tempic1"
bind:url="@{product.imgUrls.get(1)}"
tools:ignore="ContentDescription" /> <ImageView
android:id="@+id/iv_pic2"
android:layout_width="0dp"
android:layout_height="80dp"
android:scaleType="fitXY"
android:src="@drawable/tempic2"
bind:url="@{product.imgUrls.get(2)}"
tools:ignore="ContentDescription" />
</TableRow> </TableLayout>
注意使用:android:stretchColumns="*" 基本跟android:layout_weight 功能一致。