如何防止RelativeLayout中的截断

时间:2016-03-09 23:29:43

标签: android textview android-relativelayout

我正在制作一个应用程序来显示按人气和日期排序的电影。

当我点击一部电影时,我会看到电影的描述。我使用RelativeLayout作为描述UI。但如果电影名称太大,则会截断该电影名称。

我尝试了一些来自stackoverflow的解决方案,用于textView,如

android:scrollHorizontally="true"
android:ellipsize="end"
android:lines="1"

我知道有一种使用LinearLayout的解决方案。但我想知道是否只有使用RelativeLayout的解决方案。

Please Find the screenshot by clicking on this link. The text gets truncated and its replaced by three dots

这里是完整的代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/listPreferredItemHeight"
        android:paddingStart="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin_less"
        android:paddingTop="@dimen/activity_vertical_margin_less"
        android:paddingBottom="@dimen/activity_vertical_margin_less"
        tools:context="com.example.puneet.movieout.MovieInfoDisplay"
        >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Movie Title"
            android:id="@+id/textView"
            android:textStyle="bold"
            android:layout_below="@+id/imageView"
            android:layout_alignParentStart="true"
            android:layout_marginTop="20dp"
            android:textColor="@color/black"
            android:textSize="20sp" />
        <TextView
            android:scrollHorizontally="true"
            android:ellipsize="end"
            android:lines="1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="Movie name is Long. Movie name is Long"
            android:layout_marginTop="20dp"
            android:id="@+id/textView2"
            android:layout_above="@+id/textView4"
            android:layout_toRightOf="@id/textView"
            android:layout_alignStart="@+id/textView6"
            android:layout_below="@+id/imageView"
            android:textSize="20sp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="User Rating"
            android:id="@+id/textView3"
            android:textStyle="bold"
            android:layout_below="@+id/textView2"
            android:layout_alignParentStart="true"
            android:textColor="@color/black"
            android:textSize="20sp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="User Rating"
            android:layout_toRightOf="@id/textView3"
            android:id="@+id/textView4"
            android:layout_below="@+id/textView"
            android:layout_alignStart="@+id/textView6"
            android:textSize="20sp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Release Date"
            android:id="@+id/textView5"
            android:textStyle="bold"
            android:layout_below="@+id/textView3"
            android:layout_alignParentStart="true"
            android:textColor="@color/black"
            android:layout_marginRight="10dp"
            android:textSize="20sp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView6"
            android:layout_toRightOf="@id/textView5"
            android:layout_below="@+id/textView4"
            android:textSize="20sp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Overview"
            android:id="@+id/textView7"
            android:textStyle="bold"
            android:layout_below="@+id/textView5"
            android:layout_alignParentStart="true"
            android:textColor="@color/black"
            android:textSize="20sp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView8"
            android:layout_toRightOf="@id/textView7"
            android:layout_below="@+id/textView6"
            android:layout_alignStart="@+id/textView6"
            android:textSize="20sp"/>
    </RelativeLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:1)

如果您不想截断文字,则必须删除ellipsize属性并在TextView内添加HorizontalScrollView。 您的观点应该是:

<HorizontalScrollView
        android:id="@+id/txt_scrollview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
          android:layout_above="@+id/textView4"
            android:layout_toRightOf="@id/textView"
            android:layout_alignStart="@+id/textView6"
            android:layout_below="@+id/imageView"
        android:scrollbars="none"
        >
 <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="Movie name is Long. Movie name is Long"            
            android:id="@+id/textView2"          
            android:textSize="20sp"/>
</HorizontalScrollView>

这样,您可以将文本嵌入到滚动条中而不会截断文本。