From 7948a130a86b649eca2c70026ef296edd4a9efd9 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Tue, 28 Oct 2025 10:31:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=8A=BD=E5=B1=89=E4=BE=A7?= =?UTF-8?q?=E6=BB=91=E8=8F=9C=E5=8D=951?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remax/visualnovel/ui/chat/ChatActivity.kt | 5 +- .../visualnovel/ui/chat/ui/ChatSettingView.kt | 25 +++ .../visualnovel/widget/toolbar/BaseToolbar.kt | 19 +++ .../main/res/layout/activity_actor_chat2.xml | 97 +++++------ .../main/res/layout/base_toolbar_layout.xml | 2 +- .../src/main/res/layout/chat_inputpanel.xml | 160 ++++++++---------- .../res/mipmap-xxhdpi/icon_back_black.webp | Bin 0 -> 758 bytes .../res/mipmap-xxhdpi/icon_back_white.webp | Bin 0 -> 770 bytes VisualNovel/gradle.properties | 2 + 9 files changed, 174 insertions(+), 136 deletions(-) create mode 100644 VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/icon_back_black.webp create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/icon_back_white.webp diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ChatActivity.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ChatActivity.kt index ced159f..898fe6d 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ChatActivity.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ChatActivity.kt @@ -3,6 +3,7 @@ package com.remax.visualnovel.ui.chat import android.graphics.Point import androidx.activity.viewModels +import androidx.core.view.GravityCompat import androidx.core.view.marginTop import androidx.lifecycle.Observer import androidx.lifecycle.lifecycleScope @@ -52,7 +53,9 @@ class ChatActivity : BaseBindingActivity() { StatusBarUtils.setStatusBarAndNavBarIsLight(this, false) StatusBarUtils.setTransparent(this) binding.root.setMargin(topMargin = StatusBarUtils.statusBarHeight) - binding.toolbar.addRightIcon(R.mipmap.chat_title_setting) + binding.toolbar.addRightIcon(R.mipmap.chat_title_setting) { + binding.drawerMenu.openDrawer(GravityCompat.END) + } with(binding) { diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt new file mode 100644 index 0000000..59fc06e --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt @@ -0,0 +1,25 @@ +package com.remax.visualnovel.ui.chat.ui + + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import com.remax.visualnovel.R +import com.remax.visualnovel.databinding.LayoutChatMenuViewBinding + +class ChatSettingView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + + private lateinit var mBinding: LayoutChatMenuViewBinding + + + init { + mBinding = LayoutChatMenuViewBinding.inflate(LayoutInflater.from(context)) + LayoutInflater.from(context).inflate(R.layout.base_toolbar_layout, this, true) + } + +} diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/toolbar/BaseToolbar.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/toolbar/BaseToolbar.kt index 671aa00..307de20 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/toolbar/BaseToolbar.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/toolbar/BaseToolbar.kt @@ -91,6 +91,25 @@ class BaseToolbar @JvmOverloads constructor( return imageView } + fun addRightIcon(@DrawableRes resId: Int, onClick: ()->Unit) { + val imageView = ImageView(context).apply { + setImageResource(resId) + scaleType = ImageView.ScaleType.CENTER_INSIDE + layoutParams = LinearLayout.LayoutParams( + LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT + ).apply { + setMargins(16, 0, 16, 0) + setOnClickListener { + onClick.invoke() + } + } + this.tag = tag + } + llRight.addView(imageView) + setupClickListener(imageView) + } + /** * 向右侧区域添加自定义视图 */ diff --git a/VisualNovel/app/src/main/res/layout/activity_actor_chat2.xml b/VisualNovel/app/src/main/res/layout/activity_actor_chat2.xml index ffecc34..01bbdc6 100644 --- a/VisualNovel/app/src/main/res/layout/activity_actor_chat2.xml +++ b/VisualNovel/app/src/main/res/layout/activity_actor_chat2.xml @@ -1,71 +1,72 @@ - - - - + android:fitsSystemWindows="true" > + + android:layout_height="match_parent" + android:background="@mipmap/bg_level_1_page" + android:orientation="vertical"> - - - - - - + > + + + + + + + + + + - \ No newline at end of file + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/base_toolbar_layout.xml b/VisualNovel/app/src/main/res/layout/base_toolbar_layout.xml index 4d640c9..88e50e7 100644 --- a/VisualNovel/app/src/main/res/layout/base_toolbar_layout.xml +++ b/VisualNovel/app/src/main/res/layout/base_toolbar_layout.xml @@ -12,7 +12,7 @@ android:layout_width="wrap_content" android:layout_height="0dp" android:scaleType="centerInside" - android:src="@mipmap/icon_checked" + android:src="@mipmap/icon_back_white" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="parent" diff --git a/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml b/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml index 53f01f3..aed35a4 100644 --- a/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml +++ b/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml @@ -6,105 +6,94 @@ android:layout_height="wrap_content" android:padding="@dimen/dp_20" > + - - - - - - - - - + - - - - - - + + + + + + + + + - @@ -115,7 +104,6 @@ android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toTopOf="@id/cl_most_bottom_container" - app:layout_constraintTop_toTopOf="parent" android:layout_marginBottom="@dimen/dp_20" > diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/icon_back_black.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/icon_back_black.webp new file mode 100644 index 0000000000000000000000000000000000000000..f67a3a7bbe63bcf22d878521c78d68698f7be87b GIT binary patch literal 758 zcmWIYbaQ*h#J~{l>J$(bU=hK^z`$St#HL{6>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-be-p;R_55T+v`TAc4be3P33tpu6&c zFr6WXA(cUa!IL46A(=rB$T9*(sv(0JFou0VKGHXJ;1yUdAjl=vFcJ`mlKPsc24Gv%6jL(f@i`-{vW%-OD@v85i942%P@%$F53dm|FJ$(bU=hK^z`$St#HL{6>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-be-p;R_55T+v`TAc4be3P33tpu6&c zFr6WXA(cUa!IL46A(=rB$T9*(sv(0JFou1&85tP#O&xdzmK*&4Z2zB2$}?;7eeJW1 zVg*hN=NxP}1Xzz8Y<;M_q0vBxLxP1##eI^9=e4_sc|QK%-?z;1)U2byF8?KWYMgnrpfxNy_YWg zb}8x9-!DeDpE7U#z02;8_djdCZMPVudHO0A)TPURcCdBrsa(Lgv8Q4IqpWPao1wS+ J{!k891^`zLv