0

这是一个文本视图,其中可能有很长的文本。它溢出并将一半的评级栏推离屏幕。

我怎样才能让它剪掉文字而不把评级栏推开?

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp"
        android:weightSum="2" >

        <TextView
            android:id="@+id/rest_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ellipsize="marquee"
            android:fadingEdge="horizontal"
            android:paddingLeft="3dp"
            android:singleLine="true"
            android:text="long text goes goes here long text goes goes here long text goes goes here"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <RatingBar
            android:id="@+id/myRatingBar"
            style="?android:attr/ratingBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:numStars="5" />
    </LinearLayout>
4

4 回答 4

0

您可以检查字符串的长度,如果它大于设定的长度,并...在字符串的末尾执行类似的操作

但是您将 textview 设置为wrap_context您也可以将其设置为硬宽度,因此它不会改变

于 2013-03-16T16:33:39.550 回答
0

您可以在文本视图中使用以下属性

android:layout_toLeftOf="@id/myRatingBar" 

您还可以在 xml 中为您的 textview 指定特定宽度

  android:layout_width="wrap_content"

您还可以使用以下属性来限制文本视图的长度

android:maxLength=""
于 2013-03-16T16:33:57.380 回答
0

使用android:maxLines="1". 如果 TextView 中的文本很长,这将切断文本,并且不会关闭评级。

于 2013-03-16T16:45:36.877 回答
0

既然你已经设置了android:layout_weight="1"两个视图,那么我认为你可以做到android:layout_width="match_parent"

这将使两个视图具有相同的宽度,即父宽度的一半。或者您可以根据您想要的任何值修改权重字段。

于 2013-03-16T16:50:06.993 回答