Dialog Fragment中TextView内容超出边界问题求助
解决Dialog Fragment中TextView内容超出边界的问题
嘿,我完全懂你现在的困扰!明明搜了好久还是没解决TextView内容溢出的问题,太闹心了对吧?让我帮你看看你的布局问题出在哪~
问题根源
你当前的水平LinearLayout里,TextView和Switch都设置了layout_width="match_parent"加上layout_weight="1",这是个典型的权重用法错误:
当LinearLayout是水平方向时,layout_weight是用来分配剩余空间的,但如果子View的宽度设为match_parent,系统会先给每个View分配满父容器的宽度,再按权重去压缩空间,这样TextView的实际可用宽度会被挤压得非常小,文本自然就装不下溢出了。
解决方案
只需要调整几个布局属性就能搞定:
- 把TextView和Switch的
layout_width改成0dp,这样系统会完全按照layout_weight的比例分配水平空间(两个权重都是1,就各占一半宽度) - 给TextView加上
android:singleLine="false"(默认虽为false,但明确声明更保险),确保文本自动换行 - 把Switch的
layout_height改成wrap_content,让它只占自身需要的高度,同时保持垂直居中
修改后的XML代码
<LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:padding="3dp" android:layout_marginBottom="30dp" android:layout_height="wrap_content"> <TextView android:id="@+id/tvAdakah" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="@string/adakah_anda_menstruasi_pada_hari_ini" android:singleLine="false" android:gravity="center_vertical"/> <Switch android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center|right"/> </LinearLayout>
我还额外给TextView加了android:gravity="center_vertical",让文本垂直居中,和Switch对齐更美观~
内容的提问来源于stack exchange,提问作者Muhammad Fadli Firdaus
相关产品推荐
相关产品推荐

