2025-12-19 15:11:49 +08:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
|
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="match_parent"
|
|
|
|
|
android:background="@android:color/white">
|
|
|
|
|
|
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
|
|
|
android:id="@+id/topBar"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="56dp"
|
|
|
|
|
android:background="@android:color/white"
|
|
|
|
|
android:paddingStart="8dp"
|
|
|
|
|
android:paddingEnd="16dp"
|
|
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
|
|
|
app:layout_constraintTop_toTopOf="parent">
|
|
|
|
|
|
|
|
|
|
<ImageButton
|
|
|
|
|
android:id="@+id/backButton"
|
|
|
|
|
android:layout_width="40dp"
|
|
|
|
|
android:layout_height="40dp"
|
|
|
|
|
android:background="@android:color/transparent"
|
|
|
|
|
android:contentDescription="back"
|
|
|
|
|
android:padding="8dp"
|
|
|
|
|
android:src="@drawable/ic_arrow_back_24"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
|
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
|
|
|
|
|
|
<ImageView
|
|
|
|
|
android:id="@+id/avatarView"
|
|
|
|
|
android:layout_width="36dp"
|
|
|
|
|
android:layout_height="36dp"
|
|
|
|
|
android:layout_marginStart="4dp"
|
|
|
|
|
android:background="@drawable/bg_avatar_circle"
|
|
|
|
|
android:padding="5dp"
|
|
|
|
|
android:src="@drawable/ic_account_circle_24"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="@id/backButton"
|
|
|
|
|
app:layout_constraintStart_toEndOf="@id/backButton"
|
|
|
|
|
app:layout_constraintTop_toTopOf="@id/backButton" />
|
|
|
|
|
|
|
|
|
|
<TextView
|
|
|
|
|
android:id="@+id/titleText"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_marginStart="10dp"
|
|
|
|
|
android:ellipsize="end"
|
|
|
|
|
android:maxLines="1"
|
|
|
|
|
android:text="会话"
|
|
|
|
|
android:textColor="#111111"
|
|
|
|
|
android:textSize="16sp"
|
|
|
|
|
android:textStyle="bold"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="@id/avatarView"
|
2025-12-26 18:18:36 +08:00
|
|
|
app:layout_constraintEnd_toStartOf="@id/voiceCallButton"
|
2025-12-19 15:11:49 +08:00
|
|
|
app:layout_constraintStart_toEndOf="@id/avatarView"
|
|
|
|
|
app:layout_constraintTop_toTopOf="@id/avatarView" />
|
|
|
|
|
|
2025-12-26 18:18:36 +08:00
|
|
|
<!-- 语音通话按钮 -->
|
|
|
|
|
<ImageButton
|
|
|
|
|
android:id="@+id/voiceCallButton"
|
|
|
|
|
android:layout_width="40dp"
|
|
|
|
|
android:layout_height="40dp"
|
|
|
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
|
|
|
android:contentDescription="语音通话"
|
|
|
|
|
android:padding="8dp"
|
|
|
|
|
android:src="@drawable/ic_call"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
|
|
|
app:layout_constraintEnd_toStartOf="@id/videoCallButton"
|
|
|
|
|
app:layout_constraintTop_toTopOf="parent"
|
|
|
|
|
app:tint="#FF6B6B" />
|
|
|
|
|
|
|
|
|
|
<!-- 视频通话按钮 -->
|
|
|
|
|
<ImageButton
|
|
|
|
|
android:id="@+id/videoCallButton"
|
|
|
|
|
android:layout_width="40dp"
|
|
|
|
|
android:layout_height="40dp"
|
|
|
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
|
|
|
android:contentDescription="视频通话"
|
|
|
|
|
android:padding="8dp"
|
|
|
|
|
android:src="@drawable/ic_videocam"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintTop_toTopOf="parent"
|
|
|
|
|
app:tint="#FF6B6B" />
|
|
|
|
|
|
2025-12-19 15:11:49 +08:00
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
|
|
|
|
|
|
<View
|
|
|
|
|
android:id="@+id/topDivider"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="1dp"
|
|
|
|
|
android:background="#EEEEEE"
|
|
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
|
|
|
app:layout_constraintTop_toBottomOf="@id/topBar" />
|
|
|
|
|
|
|
|
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
|
|
|
android:id="@+id/messagesRecyclerView"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="0dp"
|
|
|
|
|
android:clipToPadding="false"
|
|
|
|
|
android:overScrollMode="never"
|
|
|
|
|
android:paddingTop="6dp"
|
|
|
|
|
android:paddingBottom="6dp"
|
2025-12-26 15:16:40 +08:00
|
|
|
app:layout_constraintBottom_toTopOf="@id/replyInputContainer"
|
2025-12-19 15:11:49 +08:00
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
|
|
|
app:layout_constraintTop_toBottomOf="@id/topDivider" />
|
|
|
|
|
|
2025-12-26 15:16:40 +08:00
|
|
|
<!-- 回复预览区域(正在回复某条消息时显示) -->
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:id="@+id/replyInputContainer"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:background="#F5F5F5"
|
|
|
|
|
android:padding="10dp"
|
|
|
|
|
android:gravity="center_vertical"
|
|
|
|
|
android:visibility="gone"
|
|
|
|
|
app:layout_constraintBottom_toTopOf="@id/inputBar"
|
|
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent">
|
|
|
|
|
|
|
|
|
|
<!-- 左侧竖线 -->
|
|
|
|
|
<View
|
|
|
|
|
android:layout_width="3dp"
|
|
|
|
|
android:layout_height="match_parent"
|
|
|
|
|
android:background="#4CAF50"
|
|
|
|
|
android:layout_marginEnd="10dp" />
|
|
|
|
|
|
|
|
|
|
<!-- 回复内容 -->
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:orientation="vertical">
|
|
|
|
|
|
|
|
|
|
<TextView
|
|
|
|
|
android:id="@+id/replyInputLabel"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="回复 用户名"
|
|
|
|
|
android:textColor="#4CAF50"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:textStyle="bold" />
|
|
|
|
|
|
|
|
|
|
<TextView
|
|
|
|
|
android:id="@+id/replyInputContent"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="消息内容预览"
|
|
|
|
|
android:textColor="#666666"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:maxLines="1"
|
|
|
|
|
android:ellipsize="end"
|
|
|
|
|
android:layout_marginTop="2dp" />
|
|
|
|
|
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
|
|
|
|
<!-- 关闭按钮 -->
|
|
|
|
|
<ImageView
|
|
|
|
|
android:id="@+id/replyInputClose"
|
|
|
|
|
android:layout_width="24dp"
|
|
|
|
|
android:layout_height="24dp"
|
|
|
|
|
android:src="@drawable/ic_close_24"
|
|
|
|
|
android:padding="4dp"
|
|
|
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
|
|
|
android:contentDescription="取消回复" />
|
|
|
|
|
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
2025-12-19 15:11:49 +08:00
|
|
|
<LinearLayout
|
|
|
|
|
android:id="@+id/inputBar"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:background="#FAFAFA"
|
|
|
|
|
android:gravity="center_vertical"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:paddingStart="12dp"
|
|
|
|
|
android:paddingEnd="12dp"
|
|
|
|
|
android:paddingTop="10dp"
|
|
|
|
|
android:paddingBottom="10dp"
|
|
|
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
|
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
|
|
|
app:layout_constraintStart_toStartOf="parent">
|
|
|
|
|
|
|
|
|
|
<com.google.android.material.textfield.TextInputEditText
|
|
|
|
|
android:id="@+id/messageInput"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="40dp"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:background="@drawable/bg_white_16"
|
|
|
|
|
android:hint="输入消息..."
|
|
|
|
|
android:imeOptions="actionSend"
|
|
|
|
|
android:inputType="text"
|
|
|
|
|
android:maxLines="4"
|
|
|
|
|
android:paddingStart="12dp"
|
|
|
|
|
android:paddingEnd="12dp"
|
|
|
|
|
android:textColor="#111111"
|
|
|
|
|
android:textSize="14sp" />
|
|
|
|
|
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/sendButton"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="40dp"
|
|
|
|
|
android:layout_marginStart="10dp"
|
|
|
|
|
android:minWidth="64dp"
|
|
|
|
|
android:text="发送"
|
|
|
|
|
android:textAllCaps="false"
|
|
|
|
|
android:textSize="13sp" />
|
|
|
|
|
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|