0

我在使用singleLine=trueellipsize=start使用按钮时有一个奇怪的行为。

首先,我的按钮声明:

<Button
    android:id="@+id/enterDeparture"
    android:layout_width="175dp"
    android:layout_height="30dp"
    android:layout_marginLeft="10dp"
    android:background="@drawable/field_button"
    android:text="@string/research_enterDeparture"
    android:textColor="@drawable/field_button_textcolor"
    android:paddingLeft="3dp"
    android:paddingRight="3dp"
    android:ellipsize="start"
    android:singleLine="true" />

使用此声明,按钮内不会显示任何文本。但是如果我写Log.d(TAG, "the text is : " + findViewById(R.id.enterDeparture));,LogCat 会给我正确的值......

我试图以编程方式设置文本,无论是在方法onCreateView()中还是在onResume()方法中:相同的行为。但是,如果我稍后再设置文本,如果我在屏幕上放置一个 AlertDialog,内容会立即返回......

最后,如果我删除两行android:ellipsize="start"android:singleLine="true",一切正常:我的文本第一次显示。

编辑

我试图删除该singleLine=true行:实际显示了初始内容,但椭圆大小的行为不再起作用......

所以我尝试了maxLines=1:显示初始内容,但不再显示“...”(内容只是被截断)。

4

1 回答 1

1

尝试更改高度值:

android:layout_height="wrap_content"

您可能会将文本省略为 ... 并且因为按钮填充它可能被隐藏。

你也想试试这个:

Log.d(TAG, "the text is : " + ((Button)findViewById(R.id.enterDeparture)).getText())
于 2012-08-24T10:57:32.447 回答