我正在构建一个将在列表视图中使用的条形图。条形图使用LinearLayout和Weights构建。条形图的简单表示,仅包含以下XML中提供的一个条形码:
<LinearLayout
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/bar"
android:layout_width="20dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="3dp"
android:paddingRight="3dp">
<View
android:id="@+id/counter_weight"
android:layout_width="match_parent"
android:layout_height="0dp" />
<View
android:id="@+id/visible_part_of_bar"
android:layout_width="match_parent"
android:layout_height="0dp" />
</LinearLayout>
</LinearLayout>
如果您希望此栏表示60%,则将visible_part_of_bar的权重设置为60,将counter_weight的权重设置为40.
视图本身工作正常,但在列表视图中,子视图的高度未正确更新。添加一个非常奇怪的事情是你可以更新列表视图中栏的背景颜色,但其他一切似乎都被忽略了。
有什么可能出错的想法?
答案 0 :(得分:0)
看起来您正在尝试利用LinearLayout加权系统,但看起来您没有正确设置。
如果您以编程方式应用这些布局更改,则可能需要在进行更改后在行的根视图上调用requestLayout()。