2

我在 ICS 之前遇到 textView 不换行的问题。在 ICS 中(我相信蜂窝也可以,但我还没有尝试过),textView 中的文本很好地中断,但在姜饼中,下面的文本一直在一行中。任何想法如何解决这一问题?

我正在使用 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"
|           |
|           |
|           |
|___________|

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

///////更新///////////////

好的,伙计们,这很有趣..我尝试了你所有的建议,但都没有奏效,所以我开始了一个新的空白项目,只是将一个 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>

样式.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 行为异常但是当我添加 android:theme="@android:style/Theme.Holo" 时,就像我通常会做的那样强制全息主题,它也表现不佳

奇怪的。

4

2 回答 2

8

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

我能够轻松地复制它,这是一行 xml 的问题:@android:style/Theme.Holo

解决这个问题的最简单方法是引入一个版本化的 values 文件夹,让 Android 选择正确的文件夹。换句话说,您将拥有 2 个styles.xml:

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

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

于 2012-10-23T13:52:06.140 回答
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" />
于 2014-04-25T14:02:05.413 回答