Android中的Textview只能在RelativeLayout中显示两行文本

时间:2014-10-15 10:00:21

标签: xml layout chat relativelayout

我在android中创建了一个聊天应用程序。我在设计部分使用ListView设计我的聊天布局我使用RelativeLayout进行聊天界面,但是如果我使用9patch气泡背景,则消息文本只能显示两行文本,并且它可以显示三行如果我删除了9patch气泡背景,请发短信。下面是我的xml文件。为什么它不能显示所有文字?还有一件事我希望聊天时间在右边,但是当消息文本到达一行或多行时它就隐藏了。谢谢你的帮助。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/chat_wrapper"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >

    <LinearLayout
        android:id="@+id/chat_history"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@android:color/darker_gray" />

        <TextView
            android:id="@+id/date_section"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:gravity="center_vertical"
            android:text="02day12month"
            android:textSize="12sp" />

        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@android:color/darker_gray" />
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/chat_view_left"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/chat_history">

        <TextView
            android:id="@+id/msg_chatter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/msg_text_left"
            android:text="Mr. Daroath" />

        <TextView
            android:id="@+id/msg_time_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@+id/msg_text_left"
            android:layout_below="@+id/msg_text_left"
            android:layout_marginTop="2dp"
            android:text="10:20"
            android:textColor="#808080"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/reciever_profile_pic"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/msg_text_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/reciever_profile_pic"
            android:layout_toRightOf="@+id/reciever_profile_pic"
            android:text="Chat bubble is bubble in comic book that contains character's words. Some people call it speech bubble. Android app like eBuddy uses it when you are chatting with your friend."

            android:textSize="14sp" /><!-- android:background="@drawable/partner" -->
    </RelativeLayout>

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

在相对布局中使用android:layout_width =“fill_parent”。试试这个

答案 1 :(得分:0)

乍一看(也可能存在更多问题):你将msg_time_left与msg_text_left对齐,但后面会定义一个。这通常不适用于relativelayout。当你对齐而不是android时,总是确保你使用id引用:layout_alignRight =“@ + id / msg_text_left”你应该使用android:layout_alignRight =“@ id / msg_text_left”。在您的情况下,这将失败,因为稍后定义了ID。

答案 2 :(得分:0)

最后我做了一些改变,现在它起作用了。无论如何,如果你有任何更好的设计理念赞赏! enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/chat_wrapper"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >

    <LinearLayout
        android:id="@+id/chat_history"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@android:color/darker_gray" />

        <TextView
            android:id="@+id/date_section"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:gravity="center_vertical"
            android:text="02day12month"
            android:textSize="12sp" />

        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@android:color/darker_gray" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/text_wrap"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/chat_history"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/reciever_profile_pic"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_gravity="bottom"
            android:src="@drawable/ic_launcher" />

        <RelativeLayout
            android:id="@+id/chat_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dp" >

            <TextView
                android:id="@+id/msg_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10:20"
                android:layout_alignRight="@id/msg_text"
                android:textColor="#808080"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/msg_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/partner"
                android:text="Chat bubble is bubble in comic book that contains character&apos;s words. Some people call it speech bubble. Android app like eBuddy uses it when you are chatting with your friend."
                android:textSize="14sp"
                android:layout_below="@id/msg_time" />
        </RelativeLayout>
    </LinearLayout>

    <TextView
        android:id="@+id/msg_chatter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/text_wrap"
        android:text="Mr. Daroath" />

</RelativeLayout>