2017-05-16 71 views
0

當我以線性佈局將長文本添加到我的TextView時,它佔據了所有空間,並且其他視圖被擠壓。我爲每個視圖設置了layout_width="0",但它沒有幫助。我還應該補充說明這個佈局是在RecyclerView中使用的。LinearLayout TextView體重中斷與長文本

這裏是我的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.LinearLayoutCompat 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:weightSum="100"> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/lp" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="Lp" 
    android:layout_weight="5" /> 

//this TextView takes all the space if text is long, but it behaves normally if text is short 
<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/nazwa" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="Końcówka Yankauer do odsysania pola operacyjnego CH 23 (4 otwory boczne) z kontrolą odsysania" 
    android:layout_weight="20"/> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/ilosc" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="#" 
    android:layout_weight="5" /> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/jednostka" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="JM" 
    android:layout_weight="15" /> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/cenaNetto" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="C. net." 
    android:layout_weight="15" /> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/wartNetto" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="W.net." 
    android:layout_weight="15" /> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/wartVAT" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="VAT" 
    android:layout_weight="10" /> 

<TextView 
    android:textSize="12sp" 
    android:gravity="center" 
    android:id="@+id/wartBrutto" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:text="W. brut." 
    android:layout_weight="15" /> 

</android.support.v7.widget.LinearLayoutCompat> 

這裏是我的應用程序link

+0

爲什麼要使用高度 「match_parent」 所有textViews? –

+0

因爲如果我不這樣看起來很醜很像[這個](http://i.imgur.com/e98BEBl.png) – musztardus

+0

如果你想給百分比老虎機視圖比嘗試android的新概念PercentRelativeLayout [鏈接]( https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html) – ashish

回答

1

請嘗試下面的鏈接代碼作爲演示我希望你會得到你的結果。

下面是代碼:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#ffffff" 
      android:shrinkColumns="*" 
      android:stretchColumns="*"> 
    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
      <TextView 
       android:id="@+id/row_my_booking_unit_name" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:gravity="center"> 
      </TextView> 
      <TextView 
       android:id="@+id/row_my_booking_unit_quantity" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:gravity="center"> 
      </TextView> 
      <TextView 
       android:id="@+id/row_my_booking_unit_amount" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:gravity="center"> 
      </TextView> 
     </LinearLayout> 
    </TableRow> 
</TableLayout> 
+0

謝謝,這就是我一直在尋找的東西,現在一切似乎都在正常工作。 – musztardus

+0

最受歡迎,並請你接受我的回答。 – ashish

0

你在你的TextView想這是什麼打破了打印屏幕?

android:ellipsize="end" 
android:maxLines="1" 
+0

是的,但佈局仍然看起來相同,只有更少的文字可見。 – musztardus

+0

@musztardus是你的'RecyclerView'水平? –

+0

[這是它的樣子](http://i.imgur.com/6zXPy8u.png) – musztardus

0

如果你想讓每個文本視圖佔據相同的空間,那麼你可以爲所有的文件分配layout_weight = 1。

+0

但我不希望每個視圖佔據相同的空間。我希望每個視圖佔用設置的空間百分比,並且它可以工作,但是如果我在其中一個文本視圖中設置了太長的文本,它就會中斷。 – musztardus