【问题标题】:How to wrap a lengthy text in an android switch widget如何在 android switch 小部件中包装冗长的文本
【发布时间】:2015-07-03 08:26:33
【问题描述】:

我的应用中的开关小部件具有自定义样式。 textOff 和 textOn 都有文本。显示的英文文本很短,但不幸的是,它很长,甚至包含多个其他语言的单词,因此不适合小部件。这会导致小部件的可绘制对象被推出小部件的可见区域,有时切换按钮本身不适合。

(很遗憾,由于缺乏声誉,我无法发布图片)

如果文本不再适合,我希望将文本换行。这可能吗?我尝试了 singleLine="false" 以及 ellipsize 属性,但都没有显示任何效果。

<Switch
  style="@style/MarginedElement"
  android:id="@+id/toggle_button"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:drawableStart="@drawable/toggle_switch"
  android:textOff="@string/textOff"
  android:textOn="@string/textOn"
  android:thumb="@drawable/click_style_switch_button_thumb"
  android:track="@drawable/click_style_switch_button_bg"
  android:background="@drawable/click_style_switch_bg"
  android:switchTextAppearance="@style/switchText"
 />

知道我该怎么做吗?或者除了更改文本本身之外的其他解决方案。

编辑: 固定开关的宽度,设置singleLine="true" 和ellipsize="end" 没有任何效果。

【问题讨论】:

  • 作为对可能遇到此问题的人的说明:我认为开关小部件不支持长文本,因此在摆弄了几个小时后,我决定重新设计该部分应用程序,因此它首先不需要冗长的文本。

标签: android word-wrap


【解决方案1】:

你写过你试过singleLine="false",但这只会让它不是单行的。如果你想椭圆化,你应该设置:

android:ellipsize="end"
android:singleLine="true"

还可以使用 Switch 的 layout_width:现在它会填充父级,尝试设置您需要的确切大小,如果有的话。这样,小部件将始终保持您想要的大小,并且文本将变成椭圆形。

【讨论】:

  • 不幸的是,按照您的指定固定宽度并设置其他两个属性没有任何效果。我怀疑切换按钮不支持冗长的文本,因为我还尝试通过添加 \n 手动中断文本,按钮无法正确呈现
【解决方案2】:

如果您需要椭圆化,请使用 singleLine=true,然后使用 ellipsize=end。您的自定义视图应具有固定宽度(按重量或固定 dp)。如果要调整文本大小,则需要进行更多自定义。看看这个:https://stackoverflow.com/a/17782522

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2019-05-07
    相关资源
    最近更新 更多