6

我正在编写一个 android 应用程序,有时文本的最后几个像素被截断。它发生在应用程序各个部分的几个不同控件上。这发生在模拟器和我的手机上。

下面是布局的一部分,我添加了背景颜色,因此您可以看到父布局占用了整个长度,但文本视图没有正确包装上下文 在此处输入图像描述

在底部的“r”之后显然是一个间隙,但顶部的“a”被略微截断。这是布局

<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_gravity="center" android:background="#fbff18">

    <TextView android:id="@+id/SongRowSongName"
        android:gravity="left"
        android:layout_gravity="left"
        android:ellipsize="end"
        android:maxLines="1"
        android:singleLine="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:background="#ff1217"/>

    <TextView android:id="@+id/SongRowArtistName"
        android:gravity="left"
        android:layout_gravity="left"
        android:ellipsize="end"
        android:maxLines="1"
        android:singleLine="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:linksClickable="false"
        android:background="#ff1217" android:clickable="false"/>
</LinearLayout>

我知道我可以在 textview 上将宽度设置为 full_parent,但这只是问题的一个实例,我不明白为什么必须这样做。它发生的另一个主要地方是我的tabhost。 在此处输入图像描述

intent = new Intent().setClass(this, ProfileActivity.class);
spec = tabHost.newTabSpec("profile").setIndicator("Profiles",
    res.getDrawable(R.drawable.ic_tab_profile))
    .setContent(intent);
tabHost.addTab(spec);

这就是我用作背景图像选择器的东西

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When selected, use grey --> 
    <item android:drawable="@drawable/profile_grey" android:state_selected="true" />
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/profile_white" /> 
</selector>

这对我来说没有意义,为什么当父级中有足够的空间时它不能正确包装内容。

4

2 回答 2

1

原来问题是因为我没有在 AndroidManifest 中指定 minSdkVersion。

<uses-sdk android:minSdkVersion="4"/>

如果我没有任何东西,并且 minSdkVersion 为 <= 3,那么就会出现问题。

大家加油,

于 2013-06-09T05:23:14.150 回答
0

对我来说,问题是 AndroidManifest 中的这个设置:

<supports-screens android:anyDensity="false">

意识到这是问题后,我发现文档明确指出:“对于支持 Android 1.6(API 级别 4)及更高版本的应用程序,默认情况下这是“true”,除非您是绝对确定您的应用程序必须运行。”

http://developer.android.com/guide/topics/manifest/supports-screens-element.html#any

于 2013-06-10T20:45:46.043 回答