Jelajahi Sumber

引入ISCS设置页、通用按钮

Frankensteinly 9 bulan lalu
induk
melakukan
6b09ab07b0

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -23,7 +23,8 @@
 
         <activity
             android:name=".view.activity.LoginActivity"
-            android:exported="true">
+            android:exported="true"
+            android:launchMode="singleTask">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

+ 23 - 0
app/src/main/java/com/grkj/iscs_mc/view/fragment/SettingFragment.kt

@@ -0,0 +1,23 @@
+package com.grkj.iscs_mc.view.fragment
+
+import android.content.Intent
+import com.grkj.iscs_mc.databinding.FragmentSettingBinding
+import com.grkj.iscs_mc.util.NetApi
+import com.grkj.iscs_mc.view.activity.LoginActivity
+import com.grkj.iscs_mc.view.base.BaseFragment
+
+/**
+ * 设置页
+ */
+class SettingFragment : BaseFragment<FragmentSettingBinding>() {
+
+    override val viewBinding: FragmentSettingBinding
+        get() = FragmentSettingBinding.inflate(layoutInflater)
+
+    override fun initView() {
+        mBinding?.cbLogout?.setOnClickListener {
+            NetApi.logout()
+            startActivity(Intent(context, LoginActivity::class.java))
+        }
+    }
+}

+ 52 - 0
app/src/main/java/com/grkj/iscs_mc/view/widget/CommonBtn.kt

@@ -0,0 +1,52 @@
+package com.grkj.iscs_mc.view.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import android.widget.LinearLayout
+import com.grkj.iscs_mc.R
+import com.grkj.iscs_mc.databinding.LayoutCommonBtnBinding
+
+/**
+ * 通用Tab控件
+ */
+class CommonBtn(private val ctx: Context, attrs: AttributeSet) : LinearLayout(ctx, attrs) {
+
+    private var mBinding: LayoutCommonBtnBinding
+
+    init {
+        val root = View.inflate(ctx, R.layout.layout_common_btn, this)
+        mBinding = LayoutCommonBtnBinding.bind(root)
+
+        val attrSet = ctx.obtainStyledAttributes(attrs, R.styleable.CommonBtn)
+
+        val btnText = attrSet.getString(R.styleable.CommonBtn_btn_name)
+        mBinding.tvName.text = btnText
+
+        val btnIcon = attrSet.getResourceId(R.styleable.CommonBtn_btn_icon, 0)
+        if (btnIcon != 0) {
+            mBinding.iv.visibility = View.VISIBLE
+            mBinding.iv.setImageResource(btnIcon)
+        }
+
+        val background = attrSet.getResourceId(R.styleable.CommonBtn_btn_bg, 0)
+        if (background != 0) {
+            mBinding.root.setBackgroundResource(background)
+        }
+
+        attrSet.recycle()
+    }
+
+    fun setText(text: String) {
+        mBinding.tvName.text = text
+    }
+
+    fun setIcon(icon: Int?) {
+        icon?.let {
+            mBinding.iv.visibility = View.VISIBLE
+            mBinding.iv.setImageResource(it)
+        } ?: run {
+            mBinding.iv.visibility = View.GONE
+        }
+    }
+}

+ 16 - 0
app/src/main/res/layout/fragment_setting.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".view.fragment.SettingFragment">
+
+    <com.grkj.iscs_mc.view.widget.CommonBtn
+        android:id="@+id/cb_logout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        app:btn_bg="@drawable/common_btn_red_bg"
+        app:btn_name="@string/logout" />
+</RelativeLayout>

+ 20 - 0
app/src/main/res/layout/layout_common_btn.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="80dp"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:orientation="horizontal"
+    android:padding="@dimen/common_text_padding">
+
+    <ImageView
+        android:id="@+id/iv"
+        android:layout_width="14dp"
+        android:layout_height="14dp"
+        android:layout_marginRight="5dp"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@+id/tv_name"
+        style="@style/CommonTextView"
+        android:layout_width="match_parent" />
+</LinearLayout>

+ 8 - 0
app/src/main/res/values/attrs.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <declare-styleable name="CommonBtn">
+        <attr name="btn_name" format="string" />
+        <attr name="btn_icon" format="reference" />
+        <attr name="btn_bg" format="reference" />
+    </declare-styleable>
+</resources>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -19,4 +19,5 @@
     <string name="login">登录</string>
     <string name="cancel">取消</string>
     <string name="please_login">请登录</string>
+    <string name="logout">退出登录</string>
 </resources>