限制TextView中的文本

时间:2013-05-16 05:44:25

标签: android android-layout textview

我有一个textview,它在UI中动态包含一些文本更改,如下所示

布局:

<TableRow android:weightSum="2" >

            <ImageButton
                android:id="@+id/archive"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="90dp"
                android:background="@drawable/archive" />

            <ImageButton
                android:id="@+id/facebook"
                android:layout_width="-200dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:background="@drawable/facebook" />
        </TableRow>

        <TableRow android:layout_marginTop="2dp" >

            <TextView
                android:id="@+id/titlename1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="4dp"
                android:text="@string/nowplaying"
                android:textColor="#000000"
                android:textSize="12sp"
                android:textStyle="bold|italic" />

            <TextView
                android:id="@+id/titlename"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="4dp"
                android:layout_weight="1"
                android:ellipsize="none"
                android:gravity="right"
                android:maxEms="25"
                android:maxLines="1"
                android:scrollHorizontally="false"
                android:textColor="#000000"
                android:textSize="11dp" />
        </TableRow>

        <TableRow android:layout_marginTop="2dp" >

            <FrameLayout
                android:id="@+id/mainlayout"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginLeft="0dp"
                android:orientation="vertical" >

                <ImageButton
                    android:id="@+id/playbtn"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:background="@drawable/play" />

                <ImageButton
                    android:id="@+id/pausebtn"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:background="@drawable/pause" />
            </FrameLayout>

            <SeekBar
                android:id="@+id/seekBar1"
                android:layout_width="500dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/mainlayout"
                android:layout_marginLeft="-203dp"
                android:layout_marginRight="0dp" />
        </TableRow>

我的问题是当我执行我的程序时,我的布局输出:

Imagebutton1     ImageButton2

NowPlaying:    SongDetails

Play/Pause      SeekBar

问题是如果我的SongDetails文本长度包含2或3行我的布局受到干扰?可以任何一个建议吗?我的要求是限制文本

Song Detailssss等......在同一行中

5 个答案:

答案 0 :(得分:4)

只需使用android:singleLine="true"android:ellipsize="end"即可。所以你需要将TextView代码更新为

<TextView
                .....
....
                android:ellipsize="end"
               android:singleLine="true" />

参考:

  1. android:singleLine
  2. android:ellipsize

答案 1 :(得分:1)

尝试使用

android:singleLine="true"

textview

您也可以设置marquee

请注意,如果您的文字行长于屏幕尺寸,则此选取框将有效。

答案 2 :(得分:1)

尝试将android:ellipsize参数设置为“end”像这样

android:ellipsize="end"

答案 3 :(得分:0)

如果你想在最后修剪内容,请尝试将android:ellipsize参数设置为“结束”。

android:ellipsize="end"

答案 4 :(得分:-1)

只需删除wrap_content即可。这应该有用(最近我没有尝试过,但几个月前我就用它了。)

否则,您可以在Java中手动剪切文本,并在找到的第一个换行符处剪切它。