我正在尝试使用功能区构建一个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,我真的很想避免。
答案 0 :(得分:0)
想出来。
在&#34; getView&#34; ArrayView的ArrayAdapter函数。高度(和宽度)尚未计算,因此&#34; match_parent&#34;在LinearLayout上显示功能区是没用的。
我现在的修复方法是&#34; addOnLayoutChangeListener&#34;在膨胀的视图上然后立即关闭监听器并将LinearLayout设置为正确的高度。
这个其他堆栈溢出问题给了我这个想法: Calculating the height of each row of a ListView