diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index 325b0f8..c944cd1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.UserDetailModel @@ -27,9 +27,9 @@ override fun initLayoutView(): Int = R.layout.activity_user_detail override fun setupTopBarLayout() { - topLayout.setTitle("个人资料").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "个人资料" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index 325b0f8..c944cd1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.UserDetailModel @@ -27,9 +27,9 @@ override fun initLayoutView(): Int = R.layout.activity_user_detail override fun setupTopBarLayout() { - topLayout.setTitle("个人资料").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "个人资料" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index aa8943a..6635978 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -1,10 +1,10 @@ package com.casic.app.smartwell.view +import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellTypeViewModel import com.casic.app.smartwell.widgets.EasyPopupWindow @@ -21,8 +21,9 @@ override fun initLayoutView(): Int = R.layout.activity_well_management override fun setupTopBarLayout() { - topLayout.setTitle("窨井管理").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "窨井管理" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index 325b0f8..c944cd1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.UserDetailModel @@ -27,9 +27,9 @@ override fun initLayoutView(): Int = R.layout.activity_user_detail override fun setupTopBarLayout() { - topLayout.setTitle("个人资料").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "个人资料" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index aa8943a..6635978 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -1,10 +1,10 @@ package com.casic.app.smartwell.view +import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellTypeViewModel import com.casic.app.smartwell.widgets.EasyPopupWindow @@ -21,8 +21,9 @@ override fun initLayoutView(): Int = R.layout.activity_well_management override fun setupTopBarLayout() { - topLayout.setTitle("窨井管理").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "窨井管理" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml index 13de699..286b51b 100644 --- a/app/src/main/res/layout/include_base_title.xml +++ b/app/src/main/res/layout/include_base_title.xml @@ -1,6 +1,24 @@ - \ No newline at end of file + android:layout_height="@dimen/titleViewHeight" + android:background="@color/mainThemeColor"> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index 325b0f8..c944cd1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.UserDetailModel @@ -27,9 +27,9 @@ override fun initLayoutView(): Int = R.layout.activity_user_detail override fun setupTopBarLayout() { - topLayout.setTitle("个人资料").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "个人资料" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index aa8943a..6635978 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -1,10 +1,10 @@ package com.casic.app.smartwell.view +import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellTypeViewModel import com.casic.app.smartwell.widgets.EasyPopupWindow @@ -21,8 +21,9 @@ override fun initLayoutView(): Int = R.layout.activity_well_management override fun setupTopBarLayout() { - topLayout.setTitle("窨井管理").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "窨井管理" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml index 13de699..286b51b 100644 --- a/app/src/main/res/layout/include_base_title.xml +++ b/app/src/main/res/layout/include_base_title.xml @@ -1,6 +1,24 @@ - \ No newline at end of file + android:layout_height="@dimen/titleViewHeight" + android:background="@color/mainThemeColor"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4dd1ca8..6839610 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -20,6 +20,9 @@ 56dp + + 48dp + 48px diff --git a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt index b81e883..64fc108 100644 --- a/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/base/BaseActivity.kt @@ -3,10 +3,12 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isNetworkConnected import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.PageNavigationManager -import com.qmuiteam.qmui.util.QMUIStatusBarHelper +import com.casic.app.smartwell.utils.StatusBarColorUtil +import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel @@ -17,7 +19,6 @@ abstract class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - QMUIStatusBarHelper.translucent(this) //沉浸式状态栏 if (this.javaClass.simpleName == "SplashScreenActivity" || this.javaClass.simpleName == "LoginActivity") { //闪屏页和登录页不做网络判断 setupPage() @@ -34,6 +35,10 @@ private fun setupPage() { setContentView(initLayoutView()) + ImmersionBar.with(this).statusBarDarkFont(false).init() //沉浸式状态栏 + if (this.javaClass.simpleName != "SplashScreenActivity" && this.javaClass.simpleName != "LoginActivity") { + StatusBarColorUtil.setColor(this, R.color.mainThemeColor.covertColor(this)) + } setupTopBarLayout() initData() initEvent() diff --git a/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt new file mode 100644 index 0000000..f70769b --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/utils/StatusBarColorUtil.kt @@ -0,0 +1,47 @@ +package com.casic.app.smartwell.utils + +import android.R +import android.app.Activity +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.LinearLayout + +object StatusBarColorUtil { + fun setColor(activity: Activity, color: Int) { //限制android系统的版本 + // 设置状态栏透明 + activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // 生成一个状态栏大小的矩形 + val statusView = createStatusView(activity, color) + // 添加 statusView 到布局中 + val decorView = activity.window.decorView as ViewGroup + decorView.addView(statusView) + // 设置根布局的参数 + val rootView = + (activity.findViewById(R.id.content) as ViewGroup).getChildAt( + 0 + ) as ViewGroup + rootView.fitsSystemWindows = true + rootView.clipToPadding = true + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private fun createStatusView(activity: Activity, color: Int): View { // 获得状态栏高度 + val resourceId = + activity.resources.getIdentifier("status_bar_height", "dimen", "android") + val statusBarHeight = activity.resources.getDimensionPixelSize(resourceId) + // 绘制一个和状态栏一样高的矩形 + val statusView = View(activity) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight) + statusView.layoutParams = params + statusView.setBackgroundColor(color) + return statusView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt index 97193c5..833fb2b 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/AboutUsActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class AboutUsActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_about_us override fun setupTopBarLayout() { - topLayout.setTitle("关于我们").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "关于我们" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt index 4274444..efb590d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/ChangePasswordActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.isLetterAndDigit import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show @@ -20,9 +20,9 @@ override fun initLayoutView(): Int = R.layout.activity_change_pwd override fun setupTopBarLayout() { - topLayout.setTitle("修改密码").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "修改密码" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt index fc70a26..dc4aeb7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CustomerServiceActivity.kt @@ -1,17 +1,17 @@ package com.casic.app.smartwell.view +import android.view.View import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.include_base_title.* class CustomerServiceActivity : BaseActivity() { override fun initLayoutView(): Int = R.layout.activity_customer_service override fun setupTopBarLayout() { - topLayout.setTitle("联系客服").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "联系客服" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt index 4213916..9b841f1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/HelpCenterActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import android.webkit.WebViewClient import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import kotlinx.android.synthetic.main.activity_help_center.* import kotlinx.android.synthetic.main.include_base_title.* @@ -12,9 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_help_center override fun setupTopBarLayout() { - topLayout.setTitle("帮助中心").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "帮助中心" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt index 8bf81da..4050d1a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/MainActivity.kt @@ -7,7 +7,6 @@ import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ViewPagerAdapter import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.SaveKeyValues @@ -37,8 +36,7 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - topLayout.setTitle("首页").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "首页" } override fun initData() { @@ -59,23 +57,19 @@ when (menuItem.itemId) { R.id.nav_home -> { mainViewPager.currentItem = 0 - topLayout.setTitle("首页") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "首页" } R.id.nav_order -> { mainViewPager.currentItem = 1 - topLayout.setTitle("工单") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "工单" } R.id.nav_notice -> { mainViewPager.currentItem = 2 - topLayout.setTitle("消息") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "消息" } R.id.nav_mine -> { mainViewPager.currentItem = 3 - topLayout.setTitle("我的") - .setTextColor(R.color.white.covertColor(this)) + titleView.text = "我的" } } false diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index 325b0f8..c944cd1 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -1,9 +1,9 @@ package com.casic.app.smartwell.view +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.UserDetailModel @@ -27,9 +27,9 @@ override fun initLayoutView(): Int = R.layout.activity_user_detail override fun setupTopBarLayout() { - topLayout.setTitle("个人资料").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) - topLayout.addLeftImageButton(R.drawable.ic_left, 0).setOnClickListener { finish() } + titleView.text = "个人资料" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index aa8943a..6635978 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -1,10 +1,10 @@ package com.casic.app.smartwell.view +import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import com.casic.app.smartwell.R import com.casic.app.smartwell.base.BaseActivity -import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellTypeViewModel import com.casic.app.smartwell.widgets.EasyPopupWindow @@ -21,8 +21,9 @@ override fun initLayoutView(): Int = R.layout.activity_well_management override fun setupTopBarLayout() { - topLayout.setTitle("窨井管理").setTextColor(R.color.white.covertColor(this)) - topLayout.setBackgroundColor(R.color.mainThemeColor.covertColor(this)) + titleView.text = "窨井管理" + leftBackView.visibility = View.VISIBLE + leftBackView.setOnClickListener { finish() } } override fun initData() { diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml index 13de699..286b51b 100644 --- a/app/src/main/res/layout/include_base_title.xml +++ b/app/src/main/res/layout/include_base_title.xml @@ -1,6 +1,24 @@ - \ No newline at end of file + android:layout_height="@dimen/titleViewHeight" + android:background="@color/mainThemeColor"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4dd1ca8..6839610 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -20,6 +20,9 @@ 56dp + + 48dp + 48px diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1713068..c8cdd4b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ -