0

我正在尝试使用功能区构建 ListView,就像 Path 所做的那样,可以在这里看到:https ://lh3.ggpht.com/Nyw96YFpuXHgQRWOA8-iz5EQLcz71sGZlbgw3ALdaKQDdzBkcdBckDX-KA8dFDK4DA8z=h900-rw

我知道具有属性 'tileMode="repeat"' 的位图资源确实适用于单个布局,但是当我尝试使用它来创建 ListView 单元格时,drawable 不会在 Y 方向上重复,它只是呈现 drawable一次。

功能区资源(高度:1px)ribbon.xml:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ribbon_orig"
android:tileMode="repeat"/>

单元格布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/ribbon"
        android:background="@drawable/ribbon"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="@dimen/ribbon_x_offset"/>

</RelativeLayout>

这甚至可能吗?

我发现这样做的唯一方法是专门定义 layout_height,这是我真正想避免的。

4

1 回答 1

0

弄清楚了。

在 ListView 的 ArrayAdapter 的“getView”函数中。高度(和宽度)尚未计算,因此在 LinearLayout 上显示功能区的“match_parent”是无用的。

我现在的修复是在膨胀的视图上“addOnLayoutChangeListener”,然后立即关闭监听器并将LinearLayout设置为正确的高度。

这个另一个堆栈溢出问题给了我一个想法: 计算 ListView 每一行的高度

于 2013-09-12T20:55:48.673 回答