如何在android开关小部件

时间:2015-07-03 08:26:33

标签: android word-wrap

我的应用中有一个切换小部件的自定义样式。 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 =&#34; true&#34;和ellipsize =&#34;结束&#34;没有任何影响。

2 个答案:

答案 0 :(得分:0)

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

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

也可以使用Switch的layout_width:现在填充父级,尝试设置所需的确切大小(如果有)。这样,小部件将始终具有您想要的大小,并且文本将进行椭圆化。

答案 1 :(得分:0)

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