Pārlūkot izejas kodu

[feat]键盘插件,实现设置页布局

hezihao 8 mēneši atpakaļ
vecāks
revīzija
8230d98684

+ 37 - 0
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/SettingComponent.kt

@@ -0,0 +1,37 @@
+package com.atmob.keyboard_android.component
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import com.atmob.keyboard_android.R
+import com.atmob.keyboard_android.component.base.BaseUIComponent
+
+/**
+ * 设置页
+ */
+class SettingComponent @JvmOverloads constructor(
+    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
+) : BaseUIComponent(context, attrs, defStyleAttr) {
+    private lateinit var vSettingCustomPersonLayout: View
+    private lateinit var vSettingMarketLayout: View
+    private lateinit var vSettingUnlockVipLayout: View
+
+    override fun onInflateViewId(): Int {
+        return R.layout.component_setting
+    }
+
+    override fun findView(view: View) {
+        vSettingCustomPersonLayout = view.findViewById(R.id.setting_custom_person_layout)
+        vSettingMarketLayout = view.findViewById(R.id.setting_market_layout)
+        vSettingUnlockVipLayout = view.findViewById(R.id.setting_unlock_vip_layout)
+    }
+
+    override fun bindView(view: View) {
+        vSettingCustomPersonLayout.setOnClickListener {
+        }
+        vSettingMarketLayout.setOnClickListener {
+        }
+        vSettingUnlockVipLayout.setOnClickListener {
+        }
+    }
+}

+ 7 - 0
plugins/keyboard_android/android/src/main/res/drawable/bg_setting_item.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <solid android:color="@color/text_color_white" />
+    <corners android:radius="14dp" />
+</shape>

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

@@ -1,9 +1,10 @@
 <?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"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="@dimen/keyboard_height"
-    android:background="@mipmap/bg_keyboard">
+    tools:background="@mipmap/bg_keyboard">
 
     <ImageView
         android:id="@+id/back_btn"

+ 86 - 0
plugins/keyboard_android/android/src/main/res/layout/component_setting.xml

@@ -0,0 +1,86 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/keyboard_height"
+    tools:background="@mipmap/bg_keyboard">
+
+    <ImageView
+        android:id="@+id/back_btn"
+        android:layout_width="32dp"
+        android:layout_height="32dp"
+        android:layout_marginStart="12dp"
+        android:layout_marginTop="65dp"
+        android:src="@mipmap/ic_back_btn"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <androidx.core.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:fillViewport="true"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/back_btn">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <LinearLayout style="@style/setting_item_row">
+
+                <LinearLayout
+                    android:id="@+id/setting_custom_person_layout"
+                    style="@style/setting_item">
+
+                    <ImageView
+                        style="@style/setting_item_icon"
+                        android:src="@mipmap/ic_custom" />
+
+                    <TextView
+                        style="@style/setting_item_text"
+                        android:text="@string/setting_custom_person" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/setting_market_layout"
+                    style="@style/setting_item2">
+
+                    <ImageView
+                        style="@style/setting_item_icon"
+                        android:src="@mipmap/ic_market" />
+
+                    <TextView
+                        style="@style/setting_item_text"
+                        android:text="@string/setting_market" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <LinearLayout
+                style="@style/setting_item_row2"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/back_btn">
+
+                <LinearLayout
+                    android:id="@+id/setting_unlock_vip_layout"
+                    style="@style/setting_item">
+
+                    <ImageView
+                        style="@style/setting_item_icon"
+                        android:src="@mipmap/ic_vip" />
+
+                    <TextView
+                        style="@style/setting_item_text"
+                        android:text="@string/setting_unlock_vip" />
+                </LinearLayout>
+
+                <LinearLayout
+                    style="@style/setting_item2"
+                    android:visibility="invisible" />
+            </LinearLayout>
+        </LinearLayout>
+    </androidx.core.widget.NestedScrollView>
+</androidx.constraintlayout.widget.ConstraintLayout>

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

@@ -1,9 +1,10 @@
 <?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"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="@dimen/keyboard_height"
-    android:background="@mipmap/bg_keyboard">
+    tools:background="@mipmap/bg_keyboard">
 
     <ImageView
         android:id="@+id/back_btn"

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

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/keyboard_height">
+    android:layout_height="@dimen/keyboard_height"
+    android:background="@mipmap/bg_keyboard">
 
     <com.atmob.keyboard_android.component.LoginComponent
         android:layout_width="match_parent"
@@ -11,6 +12,10 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
+    <com.atmob.keyboard_android.component.SettingComponent
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

BIN
plugins/keyboard_android/android/src/main/res/mipmap-xxxhdpi/ic_custom.png


BIN
plugins/keyboard_android/android/src/main/res/mipmap-xxxhdpi/ic_market.png


BIN
plugins/keyboard_android/android/src/main/res/mipmap-xxxhdpi/ic_vip.png


+ 3 - 0
plugins/keyboard_android/android/src/main/res/values/string.xml

@@ -4,4 +4,7 @@
     <string name="go_login">去登录</string>
     <string name="vip_tip">您的免费提问次数已用完\n可订阅会员解锁无线提问</string>
     <string name="go_vip">¥0.1/天解锁</string>
+    <string name="setting_custom_person">定制人设</string>
+    <string name="setting_market">人设市场</string>
+    <string name="setting_unlock_vip">解锁会员</string>
 </resources>

+ 48 - 0
plugins/keyboard_android/android/src/main/res/values/styles.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- 一行的设置项 -->
+    <style name="setting_item_row">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:paddingStart">12dp</item>
+        <item name="android:paddingEnd">12dp</item>
+    </style>
+
+    <style name="setting_item_row2" parent="setting_item_row">
+        <item name="android:paddingBottom">12dp</item>
+    </style>
+
+    <!-- 设置项 -->
+    <style name="setting_item">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:background">@drawable/bg_setting_item</item>
+        <item name="android:gravity">center_horizontal</item>
+        <item name="android:orientation">vertical</item>
+        <item name="android:paddingTop">14dp</item>
+        <item name="android:paddingBottom">14dp</item>
+        <item name="android:layout_marginTop">12dp</item>
+    </style>
+
+    <!-- 设置项2 -->
+    <style name="setting_item2" parent="setting_item">
+        <item name="android:layout_marginStart">12dp</item>
+    </style>
+
+    <!-- 设置项的图标 -->
+    <style name="setting_item_icon">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <!-- 设置项的文字 -->
+    <style name="setting_item_text">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">8dp</item>
+        <item name="android:textColor">@color/text_color_primary</item>
+        <item name="android:textSize">13sp</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+</resources>