在android中创建自动填充聊天信息视图
我正在尝试设计一个聊天信息视图,如下所示: 只要文本是一行,一切都是正确的。 但是当文本是多线性的时,它看起来是这样的: 如何设计一个聊天信息视图,自动填充时间文本视图上方的空间? 是否可以仅在XML上执行此操作 我的代码:在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=&
<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。。。实际上,您的解决方案可能就在这里!