2014-08-30 99 views
0

我有2 TextViews,我需要水平並排,如類別+產品類別nummber類別。代碼如下所示:第一個TextView重疊第二個,Android

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingLeft="15dp" 
    android:paddingBottom ="10dp" 
    android:background="@color/navigation_background_sub"> 


    <TextView 

     android:id="@+id/category_name_second" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="22sp" 
     android:textColor="@color/ebuy_color_navigation_name" /> 

    <TextView 
     android:layout_toRightOf="@+id/category_name_second" 
     android:paddingLeft="7dp" 

     android:id="@+id/category_number_second" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="22sp" 
     android:textColor="@color/ebuy_color_navigation_number" /> 

</RelativeLayout> 

現在的問題是,一旦第一個TextView文字長,左爲第二空間是小和文本是兩個或多個行顯示。

我沒有信譽張貼圖片,所以我只是試圖解釋象下面這樣:

如何,它是:

筆記本電腦(34)

計算機軟件(1

   4      
       ) 

它應該如何:

筆記本電腦(34)

計算機(14)

軟件

+0

對兩個TextView都使用相同的ID。使他們獨一無二,它應該工作 – hoomi 2014-08-30 16:15:58

+0

他沒有使用相同的ID。這甚至不可能 – eldjon 2014-08-30 16:16:30

+0

你嘗試過'layout_toEndOf'而不是'layout_toRightOf'嗎? – mbmc 2014-08-30 16:16:58

回答

0

使用

​​

它可以幫助你

+0

這是我一直在使用的東西 – Xhulio 2014-08-30 16:21:14

+0

你可以刪除填充 – 2014-08-30 16:29:45

+0

我試過了,沒有。 – Xhulio 2014-08-30 16:36:36

0

如果更換RelativeLayout與水平LineraLayout的可用空間將均勻之間進行分配您的文字視圖。您可以添加一個weight屬性來控制每個長度的每個TextView的部分。

+0

是的,但如果將'LinearLayout'與'weights'一起使用,如果第一個'TextView'的文本太小,恐怕兩個'TextView'之間的空間太大或太小。 – Xhulio 2014-08-30 16:26:25

+0

如果使用wrap_content,則不適用 – eldjon 2014-08-30 16:49:34

0

嗯,問題是你沒有足夠的空間在水平線,這就是爲什麼文本視圖顯示更多的行。

您必須定義每個文本視圖需要多少空間。如果您的佈局非常簡單,您可以選擇線性佈局以更好地對齊文本視圖。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="10dp" 
    android:paddingLeft="15dp" 
    android:weightSum="1" > 

    <TextView 
     android:id="@+id/category_name_second" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.7" 
     android:text="Computers" 
     android:textSize="22sp" 
     android:singleLine="true" 
     android:textColor="@color/ebuy_color_navigation_name" /> 

    <TextView 
     android:id="@+id/category_number_second" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.3" 
     android:paddingLeft="7dp" 
     android:text="(24)" 
     android:textSize="22sp" 
     android:singleLine="true" 
     android:textColor="@color/ebuy_color_navigation_number" /> 

</LinearLayout> 

您還必須添加屬性SINGLELINE避免的TextView的顯示更多行。如您所見,使用重量可以爲水平線中的每個組件設置比例寬度。

0

在TextView中當你使用wrap_content時,android設備會根據你放入的數據(文本長度)調整它的寬度和高度(如果你使用wrap_content作爲高度)。如果textview沒有在textview中修復,那麼請不要使用wrap_content(僅當您不希望該文本自動寫入第二行時)。因此,如果第一個Textview佔用了超過一半的空間,第二個textview必須調整其高度以顯示完整text.There沒有永久的解決方案,因爲這個文本行取決於設備的大小。如果設備的屏幕比較大以顯示單行中的textview,它會向您顯示,除非它會增加您的案例中第二個textview的高度。

您還可以針對所有類型的屏幕尺寸進行不同的佈局,並根據它設置文本的大小。您可以check支持多種屏幕尺寸。

相關問題