android data binding jetpack VIIII 第一坑

Posted wp7ers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android data binding jetpack VIIII 第一坑相关的知识,希望对你有一定的参考价值。

 <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 功能一致。

 

以上是关于android data binding jetpack VIIII 第一坑的主要内容,如果未能解决你的问题,请参考以下文章

Android Data Binding 系列 -- Binding与Observer实现原理

Android Data Binding 系列 -- Binding与Observer实现原理

android双向数据绑定data-binding使用include时的使用方法

android -------- Data Binding的使用 ( 四 )ListView

android -------- Data Binding的使用Observable

精通 Android Data Binding