TextView不会破坏文本

时间:2012-07-20 16:19:23

标签: android textview android-4.0-ice-cream-sandwich line-breaks android-2.3-gingerbread

我遇到了在ICS之前没有破坏行的textView的问题。在ICS(我相信蜂窝工作,但我没有尝试过)文本内部的文本打破很好,但在姜饼和下面的文本只是继续在一行。任何想法如何解决这个问题?

我正在使用viewpager,这是每个屏幕的布局。我使用自定义textView只是为了添加自定义字体,希望不是问题。

pager_item.xml:`

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="20dp" >

    <com.ursus.absolution.startme.MyTextView
        android:id="@+id/message_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/quotes_background"
        android:gravity="center"
        android:textColor="#585858"
        android:textSize="25dp" />

    <com.ursus.absolution.startme.MyTextView
        android:id="@+id/author_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="#585858"
        android:textSize="20dp" />

</LinearLayout>`

In ICS
_____________
|           |
|           |
| "This is  |
|  my cool  |
|   text"   |
|           |
|___________|

In gingerbread and below
_____________
|           |
|           |
| "This is my cool text"
|           |
|           |
|           |
|___________|

对不起我新的我不能发布图片。在此先感谢,希望你们能得到它。

/////// UPDATE ///////////////

好的伙计们,这非常有趣..我尝试了你所有的建议但是没有工作,所以我开始了一个新的空白项目,只是将textview放入布局中,包含很长的字符串,它包裹得很好。

所以,我不知道这是怎么可能的,但它的自定义主题为动作栏做这个样式,当我在清单中评论它工作得很好,然而系统全息主题似乎这样做

的AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ursus.absolution.startme"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />

<application
    android:icon="@drawable/iconn"
    android:label="@string/app_name"
    android:theme="@style/Theme.myStyle" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
    </activity>
    <activity
        android:name=".SplashScreenActivity"
        android:label="@string/title_activity_main"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

styles.xml

<resources>

<style name="Theme.myStyle" parent="@android:style/Theme.Holo">
    <item name="android:actionBarStyle">@style/mycoolstyle_transparent_ActionBar</item>
</style>

<style name="mycoolstyle_transparent_ActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/transparent_actionbar</item>
</style>

...所以当我在清单中添加android:theme =“@ style / Theme.myStyle”textviews misbehave 然而当我添加android:theme =“@ android:style / Theme.Holo”时,正如我通常会强迫全息主题一样,它也不会错过

怪异。

2 个答案:

答案 0 :(得分:8)

此问题以各种形式报告,例如herehere。许多问题都报告了以前的工作布局,在更新为ICS / holo主题时会被破坏

我能够轻松地重现它,这是一行xml:@android:style/Theme.Holo

最简单的方法是引入版本化值文件夹,让Android选择正确的文件夹。换句话说,你将有2个styles.xml:

  • values-v11文件夹中,您应该放置指定的文件夹(使用parent="@android:style/Theme.Holo"
  • 在旧的values文件夹中,您将使用parent="android:Theme.Black.NoTitleBar"放置“普通”文件夹。

您的清单应保持不变,Android会根据其版本选择正确的xml。解决方案可能不是最优雅的,但至少你不会乱用android:maxlines,android:width等等

答案 1 :(得分:0)

除了Shine回答,我还必须为TextView设置相应的参数:

                android:ellipsize="none"
                android:maxLines="20"
                android:scrollHorizontally="false"
                android:singleLine="false" 

示例:

           <TextView                  
                android:textColor="@color/white"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="none"
                android:maxLines="20"
                android:scrollHorizontally="false"
                android:singleLine="false"
                android:text="@string/my_text" />