2016-03-09 54 views
0

我正在製作一個應用程序來顯示按受歡迎程度和日期排序的電影。如何防止在RelativeLayout中截斷

當我點擊一個電影,它會帶我到電影的描述。我正在使用RelativeLayout來描述UI。但是如果電影名字太大,它會被截斷。

我試圖從計算器幾個解決方案爲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> 
+0

請粘貼您的整個xml佈局。 –

+0

您正在將行數設置爲1,您期望什麼?不要設置該屬性。 –

+0

@TudorLuca我正在設置**行= 1 **以及** scrollHorizo​​ntally = true **以及它。所以,技術上應該顯示全文,如果超過,我應該可以滾動到右側。 –

回答

1

如果你不想讓文字截斷做,你必須刪除ellipsize屬性,並添加您TextViewHorizontalScrollView。 你的觀點應該是這樣的:

<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> 

這樣你可以嵌入滾動裏面的文本,而不文本被截斷。

+0

感謝您的回答@Shadab。我很感激。是否有可以在textView2中更改的屬性,以便其餘文本可以進入下一行? –

+0

但您希望文本位於1行並可滾動。這就是爲什麼我建議使用Horizo​​ntalScrollView。如果你希望它是多行的,刪除ellipsize和lines屬性並且不使用Horizo​​ntalScrollView,你會得到多行文本。 –