2017-03-15 39 views
0

目前我正在爲我的聊天listView創建一個佈局。該佈局由一個充當聊天氣泡的TextView組成,在它旁邊有一個用於timeStamp的TextView。我的佈局的問題是當我的文本超長時,第一個TextView將剪切第二個TextView應該使用的空間。所以第二個TextView正在消失。嵌套線性佈局內的Textview被剪切?

這裏是我的xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:paddingLeft="10dp" 
    android:paddingRight="40dp" 
    android:paddingBottom="10dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <TextView 
      android:text="sssssssssssssssssssyssssssssssssss" 
      android:padding="10dp" 
      android:background="@color/grey" 
      android:textColor="@color/white" 
      android:textSize="15sp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/chat_bubble" /> 
     <TextView 
      android:text="read" 
      android:textSize="8sp" 
      android:layout_marginLeft="5dp" 
      android:layout_gravity="left|bottom" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/time_label" /> 
    </LinearLayout> 

</LinearLayout> 

The textView is wrapping the text inside

+0

請檢查該庫:https://github.com/DeromirNeves/whatsapp-android –

回答

1
Try this : 


    <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:maxWidth="match_parent" 
    android:orientation="vertical" 
    android:paddingBottom="10dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="40dp"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/chat_bubble" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="10dp" 
      android:text="Message Long Text" 
      android:textSize="15sp" /> 

     <TextView 
      android:id="@+id/time_label" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left|bottom" 
      android:layout_marginLeft="5dp" 
      android:text="read" 
      android:textSize="8sp" /> 
    </LinearLayout> 

</LinearLayout> 
+0

所有的答案,這是一個工程。所有其他的答案似乎有相同的方法通過將layout_weight設置爲1,但這一個也將內部LinearLayout寬度設置爲wrap_content。謝謝你:) – VincentTheonardo

+0

歡迎@VincentTheonardo .. :)。樂於幫助 – anil

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="left" 
android:paddingLeft="10dp" 
android:paddingRight="40dp" 
android:paddingBottom="10dp"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:text="sssssssssssssssssssyssssssssssssss" 
     android:padding="10dp" 
     android:background="@color/grey" 
     android:textColor="@color/white" 
     android:textSize="15sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:id="@+id/chat_bubble" /> 
    <TextView 
     android:text="read" 
     android:textSize="8sp" 
     android:layout_marginLeft="5dp" 
     android:layout_gravity="center_vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/time_label" /> 
</LinearLayout> 

與此代碼替換代碼。

+0

其實我想TextView的包我的內容,但layout_weight = 1聊天氣泡對於一些小文本會太大 – VincentTheonardo

+0

沒問題,比給time_label textview加權。 –

+0

不是,它不工作 – VincentTheonardo

0

請嘗試下面的xml。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:paddingLeft="10dp" 
    android:paddingRight="40dp" 
    android:paddingBottom="10dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <TextView 
      android:text="sssssssssssssssssssyssssssssssssssssss" 
      android:padding="10dp" 
      android:background="@color/colorAccent" 
      android:textColor="@color/colorPrimary" 
      android:textSize="15sp" 
      android:layout_width="0dp" 
      android:layout_weight="0.90" 
      android:layout_height="wrap_content" 
      android:id="@+id/chat_bubble" /> 
     <TextView 
      android:text="read" 
      android:textSize="8sp" 
      android:layout_marginLeft="5dp" 
      android:layout_gravity="left|bottom" 
      android:layout_width="0dp" 
      android:layout_weight="0.10" 
      android:layout_height="wrap_content" 
      android:id="@+id/time_label" /> 
    </LinearLayout> 

</LinearLayout> 
+0

不,不起作用。就像其他答案一樣,layout_weight使其無法相應地縮放textView – VincentTheonardo

+0

中的字符,請檢查此庫:https://github.com/DeromirNeves/whatsapp-android –

0

試試這個

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="left" 
android:paddingLeft="10dp" 
android:paddingRight="40dp" 
android:paddingBottom="10dp"> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:text="Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing" 
     android:padding="10dp" 
     android:background="@color/tabcolor" 
     android:textColor="@color/white" 
     android:textSize="15sp" 
     android:layout_width="150dp" 
     android:layout_height="wrap_content" 
     android:id="@+id/chat_bubble" /> 
    <TextView 
     android:text="read" 
     android:textSize="8sp" 
     android:layout_marginLeft="5dp" 
     android:layout_gravity="left|bottom" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/time_label" /> 
</LinearLayout> 

</LinearLayout> 
+0

通過指定layout_width,寬度將是靜態的並且不包裝我的內容 – VincentTheonardo

+0

你正在做一個聊天應用程序,所以我認爲寬度應該是靜態的一半的屏幕寬度,所以我給這個代碼 –