沉浸式

This commit is contained in:
2026-05-07 08:35:11 +08:00
parent 3558f053e6
commit fd5a5a30d2
18 changed files with 114 additions and 40 deletions

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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()

View File

@@ -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()
}

View File

@@ -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()
}
}

View File

@@ -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()
}

View File

@@ -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)

View File

@@ -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")

View File

@@ -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()

View File

@@ -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()
}

View File

@@ -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()

View File

@@ -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)