Browse Source

feat:键盘插件,切换到键盘选择页时,隐藏Ai键盘

hezihao 8 months ago
parent
commit
3b54c63e4f

+ 10 - 0
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/AiKeyboardComponent.kt

@@ -40,6 +40,7 @@ class AiKeyboardComponent @JvmOverloads constructor(
 ) : BaseUIComponent<IAiKeyboardComponent>(context, attrs, defStyleAttr), IAiKeyboardComponent {
     private lateinit var vTabBarLayout: View
     private lateinit var vMagicIndicator: MagicIndicator
+    private lateinit var vKeyboardKeyContent: View
     private lateinit var vPasteBarLayout: View
     private lateinit var vKeyList: RecyclerView
     private lateinit var vPasteBtn: View
@@ -62,6 +63,7 @@ class AiKeyboardComponent @JvmOverloads constructor(
     override fun findView(view: View) {
         vTabBarLayout = view.findViewById(R.id.tar_bar_layout)
         vMagicIndicator = view.findViewById(R.id.magic_indicator)
+        vKeyboardKeyContent = view.findViewById(R.id.keyboard_key_content)
         vPasteBarLayout = view.findViewById(R.id.paste_bar_layout)
         vKeyList = view.findViewById(R.id.key_list)
         vPasteBtn = view.findViewById(R.id.paste_btn)
@@ -246,6 +248,14 @@ class AiKeyboardComponent @JvmOverloads constructor(
                     vKeyList.setVisible()
                 }
             }
+            // 监听键盘选择页,是否显示
+            getKeyboardViewModel().keyboardSelectPageShowing.observe(getLifecycleOwner()) { isShowing ->
+                if (isShowing) {
+                    vKeyboardKeyContent.setGone()
+                } else {
+                    vKeyboardKeyContent.setVisible()
+                }
+            }
         }
     }
 

+ 1 - 0
plugins/keyboard_android/android/src/main/res/layout/component_ai_keyboard.xml

@@ -40,6 +40,7 @@
     </FrameLayout>
 
     <LinearLayout
+        android:id="@+id/keyboard_key_content"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"

+ 2 - 2
plugins/keyboard_android/android/src/main/res/layout/component_keyboard_select.xml

@@ -4,8 +4,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="@dimen/keyboard_content_height"
-    android:background="@mipmap/bg_keyboard"
-    android:clickable="true">
+    android:clickable="true"
+    tools:background="@mipmap/bg_keyboard">
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/list"

+ 4 - 4
plugins/keyboard_android/android/src/main/res/layout/keyboard_layout.xml

@@ -7,23 +7,23 @@
     <!-- 键盘组件 -->
     <com.atmob.keyboard_android.component.child.impl.KeyBoardContainerComponent
         android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
+        android:layout_height="match_parent" />
 
     <!-- 设置组件 -->
     <com.atmob.keyboard_android.component.child.impl.SettingComponent
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:visibility="gone" />
 
     <!-- 登录组件 -->
     <com.atmob.keyboard_android.component.page.impl.LoginPageComponent
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:visibility="gone" />
 
     <!-- VIP组件 -->
     <com.atmob.keyboard_android.component.page.impl.VipPageComponent
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:visibility="gone" />
 </FrameLayout>

+ 1 - 1
plugins/keyboard_android/example/lib/main.dart

@@ -14,7 +14,7 @@ class MyApp extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    const title = 'Plugin example app';
+    const title = 'Keyboard Plugin example app';
     return MaterialApp(
       builder: EasyLoading.init(),
       title: title,

+ 1 - 1
plugins/keyboard_android/example/lib/page/chat_page.dart

@@ -244,7 +244,7 @@ class ChatPageState extends State<ChatPage> {
                           controller: _editingController,
                           decoration: const InputDecoration(
                             //提示文字
-                            hintText: "请输入要发送的消息",
+                            hintText: "选择粘贴TA的话,选择人设风格回复",
                             //边框
                             border: OutlineInputBorder(),
                           ),