3

我一直在尝试让 TextView 在 Android 2.3.3 上将文本包装成多行一段时间,但我无法让它工作,即使在最基本的级别上也是如此。无论我做什么,文本总是在屏幕边缘被切断。它在 Android 4 上运行良好,但我也想以 2.3.3 为目标。

我在这里只尝试了基本部分:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
                android:id="@+id/mainDescText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/A_MORE_DESCRIPTION_TEXT" />
</LinearLayout>

但这仍然不包含文本。我试图让它工作的真实布局在这里:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="55dp" >

            <TextView
                android:id="@+id/mainDescText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="2"
                android:text="@string/A_MORE_DESCRIPTION_TEXT" />
        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="80dp" >

            <TextView
                android:id="@+id/ageCurrentText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/ageButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:text="@string/A_MORE_CURRENT_SIGHTINGS_AGE" />

            <Button
                android:id="@+id/ageButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:onClick="loadSightingsAge"
                android:text="@string/A_MORE_SIGHTINGS_AGE_BUTTON" />
        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="80dp"
            android:layout_marginTop="10dp" >

            <TextView
                android:id="@+id/languageCurrentText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/languageButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:text="@string/A_MORE_CURRENT_LANGUAGE" />

            <Button
                android:id="@+id/languageButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:onClick="loadLanguage"
                android:text="@string/A_MORE_LANGUAGE_BUTTON" />
        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/redPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/red_pin"
                android:contentDescription="@string/A_MORE_RED_PIN_IMAGE" />

            <TextView
                android:id="@+id/redPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/redPinImage"
                android:text="@string/A_MORE_RED_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/yellowPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/yellow_pin"
                android:contentDescription="@string/A_MORE_YELLOW_PIN_IMAGE" />

            <TextView
                android:id="@+id/yellowPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/yellowPinImage"
                android:text="@string/A_MORE_YELLOW_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/greenPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/green_pin"
                android:contentDescription="@string/A_MORE_GREEN_PIN_IMAGE" />

            <TextView
                android:id="@+id/greenPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/greenPinImage"
                android:text="@string/A_MORE_GREEN_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >


            <TextView
                android:id="@+id/thanksText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="@string/A_MORE_CREATED_BY_TEXT" />

        </RelativeLayout>

    </LinearLayout>
</ScrollView>

编辑: 我不记得我到底改变了什么,但我能够让它与这个 xml 一起工作:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="55dp" >

            <TextView
                android:id="@+id/mainDescText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:lines="3"
                android:scrollHorizontally="false"
                android:text="@string/A_MORE_DESCRIPTION_TEXT" />
        </LinearLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="80dp" >

            <TextView
                android:id="@+id/ageCurrentText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/ageButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:gravity="center"
                android:text="@string/A_MORE_CURRENT_SIGHTINGS_AGE" />

            <Button
                android:id="@+id/ageButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:onClick="loadSightingsAge"
                android:text="@string/A_MORE_SIGHTINGS_AGE_BUTTON" />
        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="80dp"
            android:layout_marginTop="10dp" >

            <TextView
                android:id="@+id/languageCurrentText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/languageButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:gravity="center"
                android:text="@string/A_MORE_CURRENT_LANGUAGE" />

            <Button
                android:id="@+id/languageButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:onClick="loadLanguage"
                android:text="@string/A_MORE_LANGUAGE_BUTTON" />
        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/redPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/red_pin"
                android:contentDescription="@string/A_MORE_RED_PIN_IMAGE" />

            <TextView
                android:id="@+id/redPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/redPinImage"
                android:lines="3"
                android:scrollHorizontally="false"
                android:text="@string/A_MORE_RED_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/yellowPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/yellow_pin"
                android:contentDescription="@string/A_MORE_YELLOW_PIN_IMAGE" />

            <TextView
                android:id="@+id/yellowPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/yellowPinImage"
                android:lines="3"
                android:scrollHorizontally="false"
                android:text="@string/A_MORE_YELLOW_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/greenPinImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/green_pin"
                android:contentDescription="@string/A_MORE_GREEN_PIN_IMAGE" />

            <TextView
                android:id="@+id/greenPinText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/greenPinImage"
                android:lines="3"
                android:scrollHorizontally="false"
                android:text="@string/A_MORE_GREEN_PIN_DESCRIPTION" />

        </RelativeLayout>

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp" >


            <TextView
                android:id="@+id/thanksText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:gravity="center"
                android:lines="3"
                android:scrollHorizontally="false"
                android:text="@string/A_MORE_CREATED_BY_TEXT" />

        </RelativeLayout>

    </LinearLayout>
</ScrollView>
4

3 回答 3

3

我有同样的问题。我只想说我最近刚从使用 Android 2.3.3 平台更改为 Android 4.0.3 平台,因为我想利用 Holo 主题。所以我的默认主题看起来像这样。

<style name="mytheme" parent="android:Theme.Holo">
    <item name="android:windowNoTitle">true</item>
</style>

在运行 Android 4.0.3 的手机上,我所有的 textViews 看起来都很棒

但是当我在运行 Android 2.3.3 的模拟器中运行我的应用程序时,没有任何 textViews 被包装。我用谷歌搜索和搜索,几乎尝试了以下每种组合:

  android:inputType="textMultiLine"
  android:scrollHorizontally="false"
  android:ellipsize="none"
  android:layout_weight="1"

纳达。所以我决定恢复到我原来的主题:

<style name="myapp" parent="android:Theme.Black.NoTitleBar"/>

中提琴!TextViews 再次开始换行。去搞清楚。这不是一个真正的解决方案,但也许其他人可以解释为什么。

于 2012-06-22T21:51:30.930 回答
1

这是一个很好的相关答案,表明您可以根据运行的 Android 版本使用不同的主题- 只需创建一个版本化的样式文件夹。

在这里回答:TextView 不会破坏文本

于 2012-12-10T09:30:41.997 回答
0

我对 Android 2.3 和 4.x 也有类似的问题。正如@Richard Le Mesurier 在对这个问题的回答中所引用的那样,这个问题与主题有关:Android 4.x 使用 Holo 主题,它不会打破长线。正如 Richard 所引用的,该解决方案是通过使用版本化样式来实现的。

但是我通过向 EditText 添加两个属性来解决问题,而无需使用版本化样式:android:scrollHorizo​​ntally="false" 和 android:inputType="textMultiLine"。问题是通过将 inputType 添加为 textMultiline,拼写检查器在 Android 4.x 中启用。因此,通过在 inputType 属性中添加“textNoSuggestions”,拼写检查器被禁用,问题得到解决。

<TextView 
   android:id="@+id/my_text"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:scrollHorizontally="false"
   android:inputType="textMultiLine|textNoSuggestions"
   android:layout_marginTop="2dp"
   android:ellipsize="end" />
于 2013-02-25T19:12:57.593 回答