From fd5a5a30d2c3b74878a8eb79e699484b6ce0a11e Mon Sep 17 00:00:00 2001 From: maxinyu Date: Thu, 7 May 2026 08:35:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=89=E6=B5=B8=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 5 +- .../home/AddDeviceActivity.kt | 6 +- .../home/AddFamilyActivity.kt | 6 +- .../home/MessageActivity.kt | 6 +- .../home/PersonalFragment.kt | 7 +++ .../defenseapplication/home/ScanActivity.kt | 6 +- .../home/SetNameActivity.kt | 6 +- .../liveVideo/LiveVideoActivity.kt | 10 ++++ .../login/FaceLoginActivity.kt | 6 +- .../login/FaceVerificationActivity.kt | 6 +- .../login/ForgetPasswordActivity.kt | 5 ++ .../defenseapplication/login/LoginActivity.kt | 6 ++ .../login/RegisterActivity.kt | 7 +++ .../login/RegisterSuccessActivity.kt | 5 ++ .../personal/PersonalProfileActivity.kt | 6 +- .../main/res/layout/home_menu_fragment.xml | 1 + .../main/res/layout/live_video_activity.xml | 1 - app/src/main/res/layout/message_activity.xml | 59 +++++++++---------- 18 files changed, 114 insertions(+), 40 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 978e094..88f837d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -36,7 +36,6 @@ android { buildFeatures { viewBinding=true } - } dependencies { @@ -83,4 +82,8 @@ dependencies { implementation("androidx.media3:media3-ui:1.9.0") // ExoPlayer 通用库 implementation("androidx.media3:media3-common:1.9.0") + // 基础依赖包,必须要依赖 + implementation("com.geyifeng.immersionbar:immersionbar:3.2.2") + // kotlin扩展(可选) + implementation("com.geyifeng.immersionbar:immersionbar-ktx:3.2.2") } \ No newline at end of file diff --git a/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt b/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt index 90bc425..71383b3 100644 --- a/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager import com.example.defenseapplication.adapter.AddDeviceAdapter import com.example.defenseapplication.adapter.Device import com.example.defenseapplication.databinding.AddDeviceActivityBinding +import com.gyf.immersionbar.ImmersionBar class AddDeviceActivity : AppCompatActivity() { @@ -18,7 +19,10 @@ class AddDeviceActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = AddDeviceActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() binding.ivBack.setOnClickListener { finish() } diff --git a/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt index e1c893a..caafdc8 100644 --- a/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt @@ -22,6 +22,7 @@ import com.example.defenseapplication.R import com.example.defenseapplication.adapter.WifiListAdapter import com.example.defenseapplication.databinding.AddFamilyActivityBinding import com.example.defenseapplication.databinding.DialogWifiListBinding +import com.gyf.immersionbar.ImmersionBar class AddFamilyActivity : AppCompatActivity() { @@ -34,7 +35,10 @@ class AddFamilyActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = AddFamilyActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() binding.ivBack.setOnClickListener { finish() } diff --git a/app/src/main/java/com/example/defenseapplication/home/MessageActivity.kt b/app/src/main/java/com/example/defenseapplication/home/MessageActivity.kt index ee66bc2..19701a5 100644 --- a/app/src/main/java/com/example/defenseapplication/home/MessageActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/MessageActivity.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.example.defenseapplication.adapter.MessageListAdapter import com.example.defenseapplication.adapter.MessageListItem import com.example.defenseapplication.databinding.MessageActivityBinding +import com.gyf.immersionbar.ImmersionBar class MessageActivity : AppCompatActivity() { private lateinit var binding: MessageActivityBinding @@ -19,7 +20,10 @@ class MessageActivity : AppCompatActivity() { enableEdgeToEdge() binding = MessageActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() ViewCompat.setOnApplyWindowInsetsListener(binding.main) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) diff --git a/app/src/main/java/com/example/defenseapplication/home/PersonalFragment.kt b/app/src/main/java/com/example/defenseapplication/home/PersonalFragment.kt index ffc5437..7ac7f96 100644 --- a/app/src/main/java/com/example/defenseapplication/home/PersonalFragment.kt +++ b/app/src/main/java/com/example/defenseapplication/home/PersonalFragment.kt @@ -10,6 +10,7 @@ import com.bumptech.glide.Glide import com.example.defenseapplication.R import com.example.defenseapplication.databinding.PersonalFragmentBinding import com.example.defenseapplication.personal.PersonalProfileActivity +import com.gyf.immersionbar.ImmersionBar class PersonalFragment : Fragment() { // ViewBinding @@ -21,6 +22,12 @@ class PersonalFragment : Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View { + + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.headerLayout) + .init() + _binding = PersonalFragmentBinding.inflate(inflater, container, false) Glide.with(this) .load(R.drawable.img) diff --git a/app/src/main/java/com/example/defenseapplication/home/ScanActivity.kt b/app/src/main/java/com/example/defenseapplication/home/ScanActivity.kt index f505c09..bc23892 100644 --- a/app/src/main/java/com/example/defenseapplication/home/ScanActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/ScanActivity.kt @@ -26,6 +26,7 @@ import com.example.defenseapplication.R import com.example.defenseapplication.databinding.ScanActivityBinding import com.google.zxing.* import com.google.zxing.common.HybridBinarizer +import com.gyf.immersionbar.ImmersionBar import java.util.* class ScanActivity : AppCompatActivity(), SurfaceHolder.Callback { @@ -42,7 +43,10 @@ class ScanActivity : AppCompatActivity(), SurfaceHolder.Callback { super.onCreate(savedInstanceState) binding = ScanActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.btnBack) + .init() initView() initListener() startScanLineAnimation() diff --git a/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt index 3070a7f..fa951dd 100644 --- a/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt @@ -3,6 +3,7 @@ package com.example.defenseapplication.home import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.defenseapplication.databinding.SetNameActivityBinding +import com.gyf.immersionbar.ImmersionBar class SetNameActivity : AppCompatActivity() { @@ -12,7 +13,10 @@ class SetNameActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = SetNameActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() binding.ivBack.setOnClickListener { finish() } diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt index f1aa315..b4eb20d 100644 --- a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt @@ -13,7 +13,10 @@ import android.widget.Toast import androidx.activity.OnBackPressedDispatcher import androidx.appcompat.app.AppCompatActivity import androidx.compose.ui.test.isEnabled +import com.example.defenseapplication.R import com.example.defenseapplication.databinding.LiveVideoActivityBinding +import com.gyf.immersionbar.ImmersionBar +import com.gyf.immersionbar.ktx.destroyImmersionBar import java.io.IOException class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback { @@ -36,6 +39,11 @@ class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback { binding = LiveVideoActivityBinding.inflate(layoutInflater) setContentView(binding.root) + // ImmersionBar核心调用,沉浸式 + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() initSurfaceView() initListener() @@ -297,5 +305,7 @@ class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback { releaseMediaPlayer() super.onDestroy() } + + } diff --git a/app/src/main/java/com/example/defenseapplication/login/FaceLoginActivity.kt b/app/src/main/java/com/example/defenseapplication/login/FaceLoginActivity.kt index 6932a27..df1c5c9 100644 --- a/app/src/main/java/com/example/defenseapplication/login/FaceLoginActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/FaceLoginActivity.kt @@ -9,6 +9,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.example.defenseapplication.R import com.example.defenseapplication.databinding.FaceLoginActivityBinding +import com.gyf.immersionbar.ImmersionBar class FaceLoginActivity : AppCompatActivity() { @@ -17,7 +18,10 @@ class FaceLoginActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = FaceLoginActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topContainer) + .init() setupListeners() } diff --git a/app/src/main/java/com/example/defenseapplication/login/FaceVerificationActivity.kt b/app/src/main/java/com/example/defenseapplication/login/FaceVerificationActivity.kt index 4584335..8b606f3 100644 --- a/app/src/main/java/com/example/defenseapplication/login/FaceVerificationActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/FaceVerificationActivity.kt @@ -15,6 +15,7 @@ import com.example.defenseapplication.databinding.FaceVerificationActivityBindin import com.example.defenseapplication.view.FaceAnalyzer import com.google.mlkit.vision.face.FaceDetection import com.google.mlkit.vision.face.FaceDetectorOptions +import com.gyf.immersionbar.ImmersionBar import java.util.concurrent.ExecutorService import java.util.concurrent.Executors @@ -33,7 +34,10 @@ class FaceVerificationActivity : AppCompatActivity() { // 使用标准 ViewBinding binding = FaceVerificationActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topContainer) + .init() // 初始化人脸检测器(选项可自行调整) val options = FaceDetectorOptions.Builder() .setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_FAST) diff --git a/app/src/main/java/com/example/defenseapplication/login/ForgetPasswordActivity.kt b/app/src/main/java/com/example/defenseapplication/login/ForgetPasswordActivity.kt index 59f22c3..a968abe 100644 --- a/app/src/main/java/com/example/defenseapplication/login/ForgetPasswordActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/ForgetPasswordActivity.kt @@ -14,6 +14,7 @@ import androidx.core.view.WindowInsetsCompat import com.example.defenseapplication.R import com.example.defenseapplication.databinding.ForgetPasswordActivityBinding import com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.util.TextUtils +import com.gyf.immersionbar.ImmersionBar import java.util.regex.Pattern import kotlin.random.Random @@ -34,6 +35,10 @@ class ForgetPasswordActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = ForgetPasswordActivityBinding.inflate(layoutInflater) setContentView(binding.root) + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topContainer) + .init() // 设置渐变背景 val startColor = Color.parseColor("#CBEBFA") val endColor = Color.parseColor("#FFF2EF") diff --git a/app/src/main/java/com/example/defenseapplication/login/LoginActivity.kt b/app/src/main/java/com/example/defenseapplication/login/LoginActivity.kt index 2f4a294..78d7cda 100644 --- a/app/src/main/java/com/example/defenseapplication/login/LoginActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/LoginActivity.kt @@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import com.example.defenseapplication.databinding.ActivityLoginBinding +import com.gyf.immersionbar.ImmersionBar class LoginActivity : AppCompatActivity() { @@ -29,6 +30,11 @@ class LoginActivity : AppCompatActivity() { val endColor = Color.parseColor("#FFF2EF") setGradientBackground(binding.main, startColor, endColor) + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.logoFrame) + .init() + setupTabListeners() setupClickListeners() switchToSmsMode() diff --git a/app/src/main/java/com/example/defenseapplication/login/RegisterActivity.kt b/app/src/main/java/com/example/defenseapplication/login/RegisterActivity.kt index df53224..0c257f4 100644 --- a/app/src/main/java/com/example/defenseapplication/login/RegisterActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/RegisterActivity.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.example.defenseapplication.databinding.RegisterActivityBinding +import com.gyf.immersionbar.ImmersionBar /** * 注册页面 @@ -25,6 +26,12 @@ class RegisterActivity : AppCompatActivity() { val startColor = Color.parseColor("#CBEBFA") val endColor = Color.parseColor("#FFF2EF") setGradientBackground(binding.main, startColor, endColor) + + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topContainer) + .init() + setupListeners() //setupTextWatchers() } diff --git a/app/src/main/java/com/example/defenseapplication/login/RegisterSuccessActivity.kt b/app/src/main/java/com/example/defenseapplication/login/RegisterSuccessActivity.kt index 144840a..dadadd3 100644 --- a/app/src/main/java/com/example/defenseapplication/login/RegisterSuccessActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/login/RegisterSuccessActivity.kt @@ -10,6 +10,7 @@ import androidx.core.view.WindowInsetsCompat import com.example.defenseapplication.R import com.example.defenseapplication.databinding.RegisterSuccessActivityBinding import com.example.defenseapplication.home.HomeActivity +import com.gyf.immersionbar.ImmersionBar class RegisterSuccessActivity : AppCompatActivity() { @@ -19,6 +20,10 @@ class RegisterSuccessActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = RegisterSuccessActivityBinding.inflate(layoutInflater) setContentView(binding.root) + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topContainer) + .init() // 返回按钮 binding.backIcon.setOnClickListener { finish() diff --git a/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt b/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt index be35d93..3768402 100644 --- a/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt @@ -8,6 +8,7 @@ import androidx.core.view.WindowInsetsCompat import com.bumptech.glide.Glide import com.example.defenseapplication.R import com.example.defenseapplication.databinding.PersonalProfileActivityBinding +import com.gyf.immersionbar.ImmersionBar class PersonalProfileActivity : AppCompatActivity() { private lateinit var binding: PersonalProfileActivityBinding @@ -17,7 +18,10 @@ class PersonalProfileActivity : AppCompatActivity() { enableEdgeToEdge() binding = PersonalProfileActivityBinding.inflate(layoutInflater) setContentView(binding.root) - + ImmersionBar.with(this) + .statusBarDarkFont(true) + .titleBar(binding.topBar) + .init() ViewCompat.setOnApplyWindowInsetsListener(binding.main) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) diff --git a/app/src/main/res/layout/home_menu_fragment.xml b/app/src/main/res/layout/home_menu_fragment.xml index 367263b..52ec5d2 100644 --- a/app/src/main/res/layout/home_menu_fragment.xml +++ b/app/src/main/res/layout/home_menu_fragment.xml @@ -20,6 +20,7 @@ android:paddingBottom="12dp"> diff --git a/app/src/main/res/layout/message_activity.xml b/app/src/main/res/layout/message_activity.xml index d5fb449..2fa4e15 100644 --- a/app/src/main/res/layout/message_activity.xml +++ b/app/src/main/res/layout/message_activity.xml @@ -1,50 +1,49 @@ - - - - + android:orientation="horizontal"> + + + + + + - \ No newline at end of file + \ No newline at end of file