Intereting Posts

Непоследовательные цвета приложений на экране регенератов Marshmallow

устройство

Nexus 6 работает 6.0.1.

контекст

У меня есть приложение, в котором Toolbar и области содержимого имеют общий цвет фона:

Введите описание изображения здесь

Если я нажму кнопку «recents», это соответствие цвета сохранится в пользовательском интерфейсе recents для моего приложения:

Введите описание изображения здесь

Если я выберу другое приложение (в этом примере, приложение «Проект») со своего экрана «Аванты», снова нажмите кнопку «Повторы», это совпадение цветов больше не сохраняется:

Введите описание изображения здесь

Это происходит независимо от:

  1. TaskDescription того, я или нет явным образом применяю TaskDescription используя Activity.setTaskDescription ;
  2. Использую ли я окно или корень RelativeLayout для установки цвета фона области содержимого.

В Nougat совпадение цветов всегда сохраняется на экране повторов (Nexus 6 работает 7.0):

Введите описание изображения здесь

Вопросов

  • Это ожидаемое поведение?
  • Есть ли способ, чтобы эти цвета соответствовали Marshmallow?

Релевантные файлы

build.gradle

 apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.0" defaultConfig { minSdkVersion 21 targetSdkVersion 24 //... } } dependencies { compile 'com.android.support:appcompat-v7:24.0.0' } 

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.github.stkent.recenttaskuicolortest"> <application ... android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

styles.xml

 <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowBackground">@color/colorPrimary</item> </style> </resources> 

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/activity_margin"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/toolbar" android:text="Hello World!" android:textColor="@android:color/white" /> </RelativeLayout> 

MainActivity.java, версия 1

 package com.github.stkent.recenttaskuicolortest; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setTitle(R.string.app_name); } } 

MainActivity.java, версия 2

 package com.github.stkent.recenttaskuicolortest; import android.app.ActivityManager; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setTitle(R.string.app_name); updateRecentTasksUi(); } @Override protected void onResume() { super.onResume(); updateRecentTasksUi(); } @Override protected void onPause() { updateRecentTasksUi(); super.onPause(); } private void updateRecentTasksUi() { final ActivityManager.TaskDescription taskDescription = new ActivityManager.TaskDescription( getString(R.string.app_name), null, ContextCompat.getColor(this, R.color.colorPrimary)); setTaskDescription(taskDescription); } }