You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:00:38