android textview没有正确包装

时间:2013-12-10 04:44:51

标签: android android-layout textview

我有以下xml来显示listView中的行。我希望带有id rowCreatedAt的TextView很好地包裹但它永远不会,只显示1行。我在其他问题中尝试了大多数解决方案并将其添加到代码中,但它仍然无效。谁能告诉我为什么......?

+我想避免为textview设置确切的大小。

++换句话说,为什么当宽度/高度设置为fill_parent时,rowCreatedAt textView不会包装文本,而其他textViews包装文本就好了?

<?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="wrap_content"
    android:orientation="horizontal"
    android:layout_margin="5dp"
    android:layout_marginBottom="5dp" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/rowUserImage"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/twitter_icon" 
            android:layout_margin="5dp"/>

        <TextView
            android:id="@+id/rowCreatedAt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="10dp"
            android:textColor="#ff696969"
            android:ellipsize="none"
            android:singleLine="false"
            android:scrollHorizontally="false"
            android:layout_weight="1"
            android:maxLines="100"
            android:text="aaaaaaaaaaaaaaabbbbbbbbbbbbbb" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/rowUserName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="username"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/rowText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="status text" />
    </LinearLayout>

</LinearLayout>

4 个答案:

答案 0 :(得分:2)

 <TextView
            android:id="@+id/rowCreatedAt"
             android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="10dp"
            android:textColor="#ff696969"
            android:ellipsize="none"
            android:singleLine="false"
            android:scrollHorizontally="false"
            android:layout_weight="1"
            android:maxLines="100"
            android:text="aaaaaaaaaaaaaaabbbbbbbbbbbbbb" />

android:layout_width="fill_parent"更改为android:layout_width="200dp"

答案 1 :(得分:1)

试试这样:

            <TextView
            android:id="@+id/Lesson_Description"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:minLines="4"
            android:maxLines="6"
            android:gravity="right|center"
            android:background="@drawable/filed_shape_corner"
            android:inputType="textMultiLine" />

然后在代码中做一些事情:

mLessonDescription = (TextView) rootView
                .findViewById(R.id.Lesson_Description);


        mLessonDescription.setMovementMethod(new ScrollingMovementMethod());

答案 2 :(得分:0)

尝试设置android:ems="10"它会使您的edittext更宽,并包装其他字符。

您应该使用android:ellipsize="marquee"。如果您不想修复高度。

答案 3 :(得分:0)

添加以下样式更改以修复宽度问题。以及初始更改

<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:singleLine">false</item>
<item name="android:maxLines">100</item>
<item name="android:width">0dp</item>
<item name="android:layout_weight">1</item>