76 lines
2.4 KiB
Kotlin
76 lines
2.4 KiB
Kotlin
package com.example.defenseapplication.home
|
|
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import androidx.fragment.app.Fragment
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import com.bumptech.glide.Glide
|
|
import com.example.defenseapplication.R
|
|
import com.example.defenseapplication.databinding.PersonalFragmentBinding
|
|
import com.example.defenseapplication.personal.PersonalProfileActivity
|
|
import com.example.defenseapplication.utils.LanguageUtil
|
|
import com.example.defenseapplication.view.LanguageDialog
|
|
import com.gyf.immersionbar.ImmersionBar
|
|
|
|
class PersonalFragment : Fragment() {
|
|
// ViewBinding
|
|
private var _binding: PersonalFragmentBinding? = null
|
|
private val binding get() = _binding!!
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater,
|
|
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)
|
|
.circleCrop()
|
|
.into(binding.ivAvatar)
|
|
binding.headerLayout.setOnClickListener {
|
|
val intent= Intent(requireContext(), PersonalProfileActivity::class.java)
|
|
startActivity(intent)
|
|
}
|
|
// 更新当前语言显示
|
|
updateCurrentLanguageDisplay()
|
|
// 语言设置点击事件
|
|
binding.itemLanguage.setOnClickListener {
|
|
showLanguageDialog()
|
|
}
|
|
return binding.root
|
|
}
|
|
|
|
|
|
/**
|
|
* 更新当前语言显示
|
|
*/
|
|
private fun updateCurrentLanguageDisplay() {
|
|
val currentLang = LanguageUtil.getCurrentLanguage(requireContext())
|
|
binding.tvCurrentLanguage.text = LanguageUtil.getLanguageDisplayName(currentLang)
|
|
}
|
|
|
|
/**
|
|
* 显示语言选择对话框
|
|
*/
|
|
private fun showLanguageDialog() {
|
|
val dialog = LanguageDialog(requireContext()) { language ->
|
|
LanguageUtil.switchLanguage(requireContext(), language)
|
|
// 刷新当前页面以应用新语言
|
|
requireActivity().recreate()
|
|
}
|
|
dialog.show()
|
|
}
|
|
|
|
override fun onDestroyView() {
|
|
super.onDestroyView()
|
|
_binding = null // 避免内存泄漏
|
|
}
|
|
} |