Button文字的最后一个字符部分可见

时间:2018-10-10 20:30:09

标签: android

我有一个FrameLayout,其中包含一个EditText和一个按钮。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp">

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/edittext_hint"
        android:inputType="textPassword"
        android:maxLength="25" />

    <Button
        android:id="@+id/forgottenPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:background="@null"
        android:fontFamily="@font/sf_pro_display_lightitalic"
        android:padding="16dp"
        android:marginRight="16dp"                 // still, it gets cropped
        android:text="@string/password_button"
        android:textSize="18sp" />
</FrameLayout>

question mark is partially visible

我将padding=16dp赋予了Button,但是问号部分可见。如果我将短语缩写为“忘记了吗?”然后是“?”标记完全可见。我听不懂我什至给了marginRight=16dp,还是...

但是当我没有设置fontFamily属性时,它仍然完全可见。

我的困惑是,即使有paddingmarginRight,最后一个字符又如何被裁剪。我什至尝试在问号后添加 space ,但没有任何变化。我想念什么吗? 编辑:我实际上使用strings.xml作为按钮的文本。当我在'?'之后添加space时在strings.xml中,它不会影响按钮中的文本,但是,当文本经过硬编码并在'?'之后添加space时,问号将再次完全可见。但正如人们所说,硬编码字符串是不好的

我不能像“忘记了吗?”那样使我的短语简短,因为该应用程序是土耳其语,并且原始短语相对较长。而且,我必须使用该字体。

3 个答案:

答案 0 :(得分:2)

那是因为您的字体是斜体。如果要在XML文件中插入空格字符,请在&#160;之后使用?,如下所示:?&#160;

答案 1 :(得分:0)

那是由于按钮上的填充。取下衬垫并尝试一下。

答案 2 :(得分:0)

如果您只需要一些可点击的文本,则无需按钮:

<TextView
    android:id="@+id/forgottenPassword"
    android:clickable="true"
    android:focusable="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|center_vertical"
    android:fontFamily="@font/sf_pro_display_lightitalic"
    android:padding="16dp"
    android:marginRight="16dp"
    android:text="@string/password_button"
    android:textSize="18sp" />

请注意,我添加了clickablefocusable