2014-04-04 133 views
0

我有一個layouttextview和另一個layout裏面。我需要textview作爲wrap_content,但可拉伸到父寬度,而不會在屏幕旁邊顯示佈局。防止孩子走出屏幕邊界

我試着用relativeLinearLayout不管我做什麼,在message_indicators佈局剛剛熄滅畫面時message_text延伸至match_parent。我想在這裏是綿延message_text與內容和message_indicators需要是它旁邊沒有去關閉屏幕時,消息的內容增加。

我很感激幫助。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="10dp" > 

<TextView 
    android:id="@+id/message_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@+id/message_indicators" 
    android:autoLink="all" 
    android:background="@drawable/text_bubble_left" 
    android:clickable="true" 
    android:paddingBottom="10dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="10dp" 
    android:paddingTop="10dp" 
    android:text="@string/message_text_hint" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" /> 

<LinearLayout 
    android:id="@+id/message_indicators" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/message_text" 
    android:layout_alignParentRight="true" 
    android:orientation="vertical" 
    android:paddingLeft="10dp" > 

    <ImageView 
     android:id="@+id/message_lock_indicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_lock" 
     android:contentDescription="@string/message_locked_content_description" 
     android:paddingBottom="5dp"/> 

    <TextView 
     android:id="@+id/message_time" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/message_time_hint" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@color/gray" /> 
</LinearLayout> 

編輯: 這裏的截圖。熱門消息表示它是如何看起來像長的消息,中間是與當前的佈局和底部的短消息是應該看起來像短消息:

http://i61.tinypic.com/b8qlit.png

+1

你能後的你到底想要什麼畫面? – OAEI

+0

請發佈屏幕模型以便更好地理解。 –

+0

在佈局中添加滾動條。 –

回答

1

我發現這樣做一個最好的辦法。

以下是解決方案。

<?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:orientation="vertical" > 

<include 
    android:id="@+id/message_section_header" 
    layout="@layout/message_section_header" /> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:paddingBottom="10dp" 
    android:paddingTop="10dp" > 

    <View 
     android:id="@+id/message_bubble_arrow" 
     android:layout_width="20dp" 
     android:layout_height="20dp" 
     android:background="@drawable/message_bubble_left_arrow" 
     android:rotation="-90" /> 

    <TextView 
     android:id="@+id/message_text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:autoLink="all" 
     android:background="@drawable/message_bubble_left" 
     android:clickable="true" 
     android:padding="10dp" 
     android:text="@string/message_text_hint" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" /> 

    <LinearLayout 
     android:id="@+id/message_indicators" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:minWidth="60dp" 
     android:orientation="vertical" 
     android:overScrollMode="always" 
     android:paddingLeft="10dp" > 

     <ImageView 
      android:id="@+id/message_lock_indicator" 
      style="@style/Layout.Wrap" 
      android:contentDescription="@string/message_locked_content_description" 
      android:paddingBottom="5dp" 
      android:src="@drawable/ic_lock" /> 

     <TextView 
      android:id="@+id/message_time" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/message_time_hint" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="@color/gray" /> 
    </LinearLayout> 
</LinearLayout> 

0

嘗試android:layout_width="fill_parent"TextView內代替。

如果還是不行,請嘗試將LinearLayout塊下方的TextView塊。

+0

不工作...... :( –