Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中创建自动填充聊天信息视图_Android_Android Layout_Android Xml - Fatal编程技术网

在android中创建自动填充聊天信息视图

在android中创建自动填充聊天信息视图,android,android-layout,android-xml,Android,Android Layout,Android Xml,我正在尝试设计一个聊天信息视图,如下所示: 只要文本是一行,一切都是正确的。 但是当文本是多线性的时,它看起来是这样的: 如何设计一个聊天信息视图,自动填充时间文本视图上方的空间? 是否可以仅在XML上执行此操作 我的代码: <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=&

我正在尝试设计一个聊天信息视图,如下所示:

只要文本是一行,一切都是正确的。

但是当文本是多线性的时,它看起来是这样的:

如何设计一个聊天信息视图,自动填充时间文本视图上方的空间? 是否可以仅在XML上执行此操作

我的代码:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/nip_send_chat_bubble">


<ImageView
    android:id="@+id/seenStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="2dp"
    android:layout_marginLeft="2dp"
    android:layout_marginEnd="24dp"
    android:layout_marginRight="24dp"
    android:layout_marginBottom="8dp"
    android:tint="?attr/metaTextColor"
    android:src="@drawable/message_sent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/time" />

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="4dp"
    android:layout_marginLeft="4dp"
    android:layout_marginTop="4dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="4dp"
    android:maxWidth="200dp"
    android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore"
    android:textColor="?attr/textColor"
    android:textSize="16sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/time"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="4dp"
    android:layout_marginLeft="4dp"
    android:layout_marginEnd="2dp"
    android:layout_marginRight="2dp"
    android:text="11:50 PM"
    android:textColor="?attr/metaTextColor"
    android:textSize="12sp"
    app:layout_constraintBottom_toBottomOf="@+id/seenStatus"
    app:layout_constraintEnd_toStartOf="@+id/seenStatus"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/text"
    app:layout_constraintTop_toTopOf="@+id/seenStatus" />
</androidx.constraintlayout.widget.ConstraintLayout>

您可能会尝试将布局从约束更改为相对布局。检查这段代码是否对您有所帮助

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/nip_send_chat_bubble">


<ImageView
    android:id="@+id/seenStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/text"
    android:tint="?attr/metaTextColor"
    android:src="@drawable/message_sent"
    android:layout_alignParentRight="true"
    />

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore"
    android:textColor="#000"
    android:textSize="16sp"
    />

<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="11:50 PM"
    android:textSize="12sp"
    android:layout_below="@id/text"
    android:layout_toLeftOf="@id/seenStatus"
    />


PS:我没有进行格式化,因此您可以根据需要添加格式。

您可能可以尝试将布局从约束更改为相对布局。检查这段代码是否对您有所帮助

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/nip_send_chat_bubble">


<ImageView
    android:id="@+id/seenStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/text"
    android:tint="?attr/metaTextColor"
    android:src="@drawable/message_sent"
    android:layout_alignParentRight="true"
    />

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore"
    android:textColor="#000"
    android:textSize="16sp"
    />

<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="11:50 PM"
    android:textSize="12sp"
    android:layout_below="@id/text"
    android:layout_toLeftOf="@id/seenStatus"
    />


PS:我没有进行格式化,因此您可以根据需要添加格式。

谢谢您的回答。但是当文本是一行时,它应该在时间文本视图的前面,而不是在topOh OK。。。实际上,您的解决方案可能就在这里!谢谢你的回答。但是当文本是一行时,它应该在时间文本视图的前面,而不是在topOh OK。。。实际上,您的解决方案可能就在这里!