Я заметил очень странное поведение в отношении цветов в моем приложении. Во время изменения активности от Activity1 на Activity2 навигационная строка изменяет свой цвет (на черный, если он имеет значение) во время перехода. После этого перехода он возвращается к правильному цвету. Конечно, это раздражает и не может быть таким. Как его решить - все время сохраняйте один и тот же цвет стержня NavGiagtion? На API 26 все работает нормально, а цвет остается одинаково все время. Проблема возникает при тестировании на API 36.abstract class ActivityBase : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(childBinding.root) { v, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updateLayoutParams {
topMargin = insets.top
bottomMargin = insets.bottom
}
val statusBarView = View(this).apply {
layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, insets.top)
setBackgroundColor(ContextCompat.getColor(this@ActivityBase, R.color.purple_500))
}
addContentView(statusBarView, statusBarView.layoutParams)
WindowInsetsCompat.CONSUMED
}
}
}
< /code>
themes.xml
@color/purple_500
@color/purple_700
@android:color/white
@color/teal_200
@color/teal_700
@android:color/black
@style/Theme.MaterialComponents.DayNight
@color/purple_500
#FF0000
true
(...)
< /code>
build.gradle (module) < /p>
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
id "com.android.application"
id "org.jetbrains.kotlin.android"
id "org.jetbrains.kotlin.plugin.compose" version "2.2.20"
id "com.google.firebase.crashlytics"
id "kotlin-android"
id "kotlin-kapt"
id "com.google.devtools.ksp" version "2.2.20-2.0.3"
}
def versionNameConstant = "1.0.0-beta"
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
buildFeatures {
dataBinding = true
viewBinding = true
compose = true
buildConfig = true
}
compileSdk = 36
defaultConfig {
applicationId "pl.abc.def"
versionCode 1
versionName "${versionNameConstant}"
minSdk 26
targetSdk 36
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
variantFilter { variant ->
def needed = variant.name in [
'dbTestDebug',
'dbProdDebug',
'dbProdRelease'
]
variant.setIgnore(!needed)
}
buildTypes {
debug {
debuggable true
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
manifestPlaceholders = [appName: "def-debug"]
}
release {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
manifestPlaceholders = [appName: "def"]
}
}
flavorDimensions = ["db_variant"]
productFlavors {
create("dbProd") {
dimension = "db_variant"
}
create("dbTest") {
dimension = "db_variant"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
packaging {
resources.excludes.add("META-INF/*")
}
}
namespace 'pl.abc.def'
kotlin {
compilerOptions {
jvmTarget = JvmTarget.JVM_11
}
}
testOptions {
unitTests.all {
jvmArgs "-XX:+EnableDynamicAgentLoading"
}
}
}
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
(...)
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ity-change
Android 35+ навигационная планка меняет цвет во время изменения активности ⇐ Android
Форум для тех, кто программирует под Android
1759767911
Anonymous
Я заметил очень странное поведение в отношении цветов в моем приложении. Во время изменения активности от Activity1 на Activity2 навигационная строка изменяет свой цвет (на черный, если он имеет значение) во время перехода. После этого перехода он возвращается к правильному цвету. Конечно, это раздражает и не может быть таким. Как его решить - все время сохраняйте один и тот же цвет стержня NavGiagtion? На API 26 все работает нормально, а цвет остается одинаково все время. Проблема возникает при тестировании на API 36.abstract class ActivityBase : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(childBinding.root) { v, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updateLayoutParams {
topMargin = insets.top
bottomMargin = insets.bottom
}
val statusBarView = View(this).apply {
layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, insets.top)
setBackgroundColor(ContextCompat.getColor(this@ActivityBase, R.color.purple_500))
}
addContentView(statusBarView, statusBarView.layoutParams)
WindowInsetsCompat.CONSUMED
}
}
}
< /code>
themes.xml
@color/purple_500
@color/purple_700
@android:color/white
@color/teal_200
@color/teal_700
@android:color/black
@style/Theme.MaterialComponents.DayNight
@color/purple_500
#FF0000
true
(...)
< /code>
build.gradle (module) < /p>
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
id "com.android.application"
id "org.jetbrains.kotlin.android"
id "org.jetbrains.kotlin.plugin.compose" version "2.2.20"
id "com.google.firebase.crashlytics"
id "kotlin-android"
id "kotlin-kapt"
id "com.google.devtools.ksp" version "2.2.20-2.0.3"
}
def versionNameConstant = "1.0.0-beta"
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
buildFeatures {
dataBinding = true
viewBinding = true
compose = true
buildConfig = true
}
compileSdk = 36
defaultConfig {
applicationId "pl.abc.def"
versionCode 1
versionName "${versionNameConstant}"
minSdk 26
targetSdk 36
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
variantFilter { variant ->
def needed = variant.name in [
'dbTestDebug',
'dbProdDebug',
'dbProdRelease'
]
variant.setIgnore(!needed)
}
buildTypes {
debug {
debuggable true
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
manifestPlaceholders = [appName: "def-debug"]
}
release {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
manifestPlaceholders = [appName: "def"]
}
}
flavorDimensions = ["db_variant"]
productFlavors {
create("dbProd") {
dimension = "db_variant"
}
create("dbTest") {
dimension = "db_variant"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
packaging {
resources.excludes.add("META-INF/*")
}
}
namespace 'pl.abc.def'
kotlin {
compilerOptions {
jvmTarget = JvmTarget.JVM_11
}
}
testOptions {
unitTests.all {
jvmArgs "-XX:+EnableDynamicAgentLoading"
}
}
}
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
(...)
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79783882/android-35-navigation-bar-changes-color-during-activity-change[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия