GridLayout和TextView

时间:2013-08-05 11:43:37

标签: android textview multiline android-gridlayout

我有一个带有此方案的GridLayout

-COL0-COL1 - COL2
[-------] [TEXTVIEW]
[-------] [TEXTVIEW]
[-IMG-] [RATINGBAR]
[-------] [TEXTVIEW]
[-------] [电视] - [电视]

所以IMG有ROWSPAN = 5
TEXTVIEW1,TEXTVIEW2,RATINGBAR,TEXTVIEW3有colSpan = 2;
TEXTVIEW1和TEXTVIEW2可能有长文本,它从网络中检索数据。 这就是问题所在,如果文字太长,它就会把它剪掉......我希望文字过长时间就会换行...

这是我的XML

<GridLayout
    android:id="@+id/activity_schedabook_gridlayout_top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:rowCount="5" >

    <ImageView
        android:id="@+id/activity_schedabook_imageview_copertina"
        android:layout_column="0"
        android:layout_gravity="left"
        android:layout_row="0"
        android:layout_rowSpan="5" />

    <TextView
        android:id="@+id/activity_schedabook_textview_titolo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnSpan="2"
        android:layout_gravity="left|center_vertical"
        android:layout_row="0"
        android:ellipsize="marquee"
        android:lines="2"
        android:marqueeRepeatLimit="marquee_forever"
        android:textSize="15sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/activity_schedabook_textview_sottotitolo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnSpan="2"
        android:layout_gravity="left"
        android:layout_row="1"
        android:ellipsize="marquee"
        android:lines="2"
        android:marqueeRepeatLimit="marquee_forever" />

    <RatingBar
        android:id="@+id/activity_schedabook_ratingbar"
        style="?android:attr/ratingBarStyleSmall"
        android:layout_column="1"
        android:layout_columnSpan="2"
        android:layout_gravity="left"
        android:layout_row="2"
        android:isIndicator="true"
        android:max="5"
        android:numStars="5" />

    <TextView
        android:id="@+id/activity_schedabook_textview_autore"
        android:layout_column="1"
        android:layout_columnSpan="2"
        android:layout_row="3"
        android:textStyle="italic" />

    <TextView
        android:id="@+id/activity_schedabook_textview_categoria"
        android:layout_column="1"
        android:layout_gravity="left"
        android:layout_row="4" />

    <TextView
        android:id="@+id/activity_schedabook_textview_sottocategoria"
        android:layout_column="2"
        android:layout_gravity="left"
        android:layout_row="4" />

</GridLayout>

2 个答案:

答案 0 :(得分:0)

以下是创建视图的布局,如:

<TextView 
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/primary_text_light_disable_only"
android:gravity="center_vertical"
android:paddingLeft="14dip"
android:paddingRight="15dip"
android:ellipsize="marquee"/>

正如你所看到的那样,ellipsize被设置为marquee,所以我不相信它曾经是为了允许多行而写的。

目前有一个错误打开,永远不会显示椭圆点:http://code.google.com/p/android/issues/detail?id=10554

答案 1 :(得分:0)

GridLayout中的中心TextView是代码:

 <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"
                android:textSize="20sp"
                android:layout_gravity="center"
                android:textColor="#ffffff"
                android:id="@+id/addPoints"
                android:layout_columnSpan="2"
                android:layout_rowSpan="2"/>