我正在使用一个TextView
内部的“LabeledTextView”组件(基本上,在处理由于从右到左语言引起的布局更改时,其标签从一侧移动到另一侧的 TextView)。我在 ListView 中使用它,这正在发生:
最后一行文本被水平截断。这可能是Android TextView 中的错误onMeasure()
吗?
这个相同的“LabeledTextView”组件在其他情况下使用并且工作得很好,所以我认为这与它和ListView
.
列表项 xml 的对应部分如下所示:
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="400dp"
android:orientation="vertical" >
<com.test.library.view.LabeledTextView
android:id="@+id/sender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
custom:label="@string/sender"
custom:labelWidth="130dp"/>
<com.test.library.view.LabeledTextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
custom:label="@string/message"
custom:labelWidth="130dp"/>
</LinearLayout>
您可以看到,在包含的 LinearLayout 中,我确保容器的高度不会减小尺寸。
自定义视图设置LayoutParams
asWRAP_CONTENT
高度 - 您可以看到它已经增长到几乎正确的大小。
编辑
然而,当手动增加 LabeledTextView 的大小时,TextView
它显示正确,所以我认为onMeasure()
我的自定义视图的默认值没有正确考虑TextView
孩子的高度。