Android 35+ навигационная планка меняет цвет во время изменения активностиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android 35+ навигационная планка меняет цвет во время изменения активности

Сообщение 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 {
(...)
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... ity-change
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»