2012-04-20 46 views
13

http://dl.dropbox.com/u/24856/Screenshots/android/cutoff.png的TextView切断了一封信,机器人

这是从我的Android的屏幕截图。该文本是“asd”。但是“d”略有切断。这里是相关的看法:

 <TextView 
      android:id="@+id/stuff" 
      android:padding="2dp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/other_stuff" 
      android:layout_marginTop="33dp" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textStyle="italic" /> 

任何想法是什么造成这种情况?

+0

将所有xml文件粘贴到这里,而不仅仅是textview。 – 2012-04-20 09:19:31

+0

你尝试删除填充? (如果它的工作只是将其改为保证金) – Joe 2012-04-20 09:41:25

回答

15

没有一个提到的建议的工作,结束了它的最后一个字符斜体

+3

对于后代,我会记下我的经验。这发生在多个设备上的斜体字体(甚至达到Jellybean)。改变填充属性什么都不做。 (1)将固定宽度设置得比需要的宽;(2)以编程方式在末尾添加空格,如下所示:tv.setText(tv.getText()+“”); – 2012-11-27 15:27:35

+0

对于仍在为此苦苦挣扎的人,我创建了一个用多行解决这个问题的通用方法。 https://stackoverflow.com/a/44218468/4420543 – andras 2017-05-27 15:56:36

0

可能是填充,尝试设置,为0dp

也还有什么布局?

0

您可以使用。

android:layout_width="fill_parent" 

android:layout_width="wrap_content" 
0

istead我怀疑,如果你没有使用斜体字就不会发生问题。我会先测试一下,如果使用非斜体文本正确渲染它,那么它看起来像一个渲染问题,这将需要解决TextView中的额外填充以允许斜体字母的空间。

0

这里的问题是,斜体属性。你必须为你的textview设置一个特定的宽度。

4

我设置的TextView的宽度FILL_PARENT而不是WRAP_CONTENT固定它后面添加一个空格哈克解决方案...

0

你总是可以创建使用例如这种字体自定义TextView的(原因其实这是斜体型问题):

Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-LightItalic.ttf"); 
setTypeface(tf); 

更多细节here

1

这是我的解决方案: 设置textview和measure的格式。之后,将1像素的textview设置宽度添加到测量的宽度。

TextView textView = new TextView(this); 
    textView.setText("Text blah blah"); 
    textView.setTypeface(typeface, Typeface.BOLD_ITALIC) 
    textView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); 
    textView.setLayoutParams(new LayoutParams(textView.getMeasuredWidth() + 1, LayoutParams.WRAP_CONTENT)); 

为我工作。希望这些帮助。

5

好吧,这很奇怪,但我从android:maxLines="1"更改为android:singleLine="true",现在的文字没有被切断。

+0

*注意:android:singleLine已弃用 – 2017-03-09 17:29:01

+0

我知道'android:singleLine'已被弃用,但在某些情况下,使用'android:maxLines =“1”'将会导致文本被切断。这显然是一个错误。 – toobsco42 2017-03-09 17:37:47