如何在Xamarin Android原生开发中设置Label的文本自动换行?
原生Android TreeView TextView自动换行解决方案
你当前设置的属性未生效,核心原因是android:width="0dip"需要搭配父布局的宽度约束规则使用,约束缺失时文本控件宽度会随内容无限拉长,无法触发换行逻辑。
通用必加属性
在原有配置基础上补充以下属性即可:
- 关闭单行限制:
android:singleLine="false" - 禁用横向滚动:
android:scrollHorizontally="false" - 若父容器为LinearLayout且使用权重分配宽度,补充权重配置:
android:layout_weight="1" - 若父容器为ConstraintLayout,需补全左右约束:
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"
完整配置示例
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:maxLines="2" android:ellipsize="end" android:singleLine="false" android:scrollHorizontally="false" android:text="待显示的长文本内容"/>
注意事项
- 需确保TreeView的item根布局宽度设置为
match_parent,避免内部文本控件无法拿到正确的可用宽度 - 不要给TextView设置小于内容最小宽度的固定
maxEms或固定宽度值,避免换行逻辑异常 - Android 7.0以下版本若配置后仍未生效,可补充添加
android:inputType="textMultiLine"属性兼容
内容的提问来源于stack exchange,提问作者Rasika Palanisamy
相关产品推荐
相关产品推荐

