Ta strona zawiera szczegółowe informacje na temat starszych wersji pakietów Biblioteki pomocy. Najnowsze wersje Biblioteki pomocy znajdziesz w artykule Najnowsze wersje bibliotek pomocy.
Wersja 26.0.0 Beta 2
(czerwiec 2017 r.)
Uwaga: 26.0.0-beta2 jest wersją przedpremierową. Interfejs API może się zmienić i nie musi zawierać funkcji ani poprawek błędów z najnowszych stabilnych wersji Biblioteki pomocy.
Ważne: biblioteki pomocy są teraz dostępne w repozytorium Google Maven. Nie musisz pobierać repozytorium pomocy z Menedżera SDK. Więcej informacji znajdziesz w artykule o konfigurowaniu biblioteki pomocy.
Nowe interfejsy API
- Nowa klasa
JobIntentService
, aby ułatwić deweloperom planowanie zadań w sposób zgodny z nowymi limitami wykonywania w tle na Androidzie O.
Różnice w interfejsie API
Poprawki błędów
- Spadek liczby pakietów SDK do Androida O powoduje utratę kursywy w TextView
- Wyjątek (wyjątek o wartości null podczas nawiązywania połączenia z MediaBrowserServiceCompat)
- TextInputLayout musi ustawiać wskazówki dotyczące onProvideAutofillużywa()
- Zbyt duża część stosu podczas korzystania z automatycznego rozmiaru TextView w trybie O
Wersja 26.0.0 Beta 1
(maj 2017 r.)
Uwaga: 26.0.0-beta1 jest wersją przedpremierową. Interfejs API może się zmienić i nie musi zawierać funkcji ani poprawek błędów z najnowszych stabilnych wersji Biblioteki pomocy.
Ważne: biblioteki pomocy są teraz dostępne w repozytorium Google Maven. Nie musisz pobierać repozytorium pomocy z Menedżera SDK. Więcej informacji znajdziesz w artykule o konfigurowaniu biblioteki pomocy.
Ważne zmiany
- Usunięto:
FragmentActivity.setSupportMediaController()
iFragmentActivity.getSupportMediaController()
. Użyj nowych statycznych metodMediaControllerCompat.setMediaController()
iMediaControllerCompat.getMediaController()
. - Teraz
BottomNavigationView
wywołuje metodęonNavigationItemReselected()
po wybraniu już wybranego elementu, zamiast wywoływać metodęonNavigationItemSelected()
. - Wszystkie wystąpienia metody
findViewById()
zwracają teraz wartość<T extends View> T
zamiastView
. Ta zmiana ma następujące konsekwencje:- Może to spowodować, że istniejący kod będzie miał teraz niejednoznaczny typ zwracanego kodu, np. jeśli zarówno
someMethod(View)
, jak isomeMethod(TextView)
pobiera wynik wywołaniafindViewById()
. - W przypadku języka źródłowego Java 8 wymaga to jawnego rzutu na
View
, gdy zwracany typ nie jest ograniczony (np.assertNotNull(findViewById(...)).someViewMethod())
). - Zastąpienia nieostatecznej metody
findViewById()
(np.Activity.findViewById()
) wymagają zmiany typu zwracanego kodu.
- Może to spowodować, że istniejący kod będzie miał teraz niejednoznaczny typ zwracanego kodu, np. jeśli zarówno
Nowe interfejsy API
-
FragmentManager
iFragment
mają metodęisStateSaved()
, która umożliwia zapytanie o to, czy transakcja będzie dozwolona bez utraty stanu. Jest to szczególnie przydatne, gdy chcesz sprawdzić obsługę zdarzeniaonClick()
przed wykonaniem transakcji. - Ruch w ścieżce jest obsługiwany w języku:
AnimatedVectorDrawableCompat
. Ruch ścieżki umożliwia jednemu animatorowi obiektu zmianę 2 właściwości jednocześnie na podstawie 1 ścieżki. Ścieżka jest określana jakoandroid:pathData
w pliku XML animatora. - Animacja oparta na fizyce:
- Nowy
FlingAnimation
, który obsługuje animację z prędkością początkową i płynnie się zwalnia. - Podklasy
DynamicAnimation
obsługują animowanie właściwości niestandardowej dowolnego obiektu. - Zarówno
SpringAnimation
, jak iFlingAnimation
mogą teraz animować wartość zmiennoprzecinkową bez konieczności powiązania z nią elementuView
lubObject
.
Więcej informacji znajdziesz na stronach podglądu animacji wiosennych i animacji przesunięcia.
- Nowy
-
Obsługa czcionek w formacie XML:
-
ResourcesCompat.getFont
umożliwia ładowanie zasobów czcionek, w tym kodu XML rodziny czcionek, które można używać zTextView.setTypeface()
. - Gdy używasz AppCompat, TextView obsługuje określenie zasobu czcionki lub pliku XML rodziny czcionek za pomocą atrybutu XML
android:fontFamily
. - Używaj rodziny czcionek XML, aby tworzyć rodziny czcionek z różnymi stylami i wagami. Jeśli do tego celu używasz klas biblioteki pomocy, użyj zarówno atrybutów
app:
, jak iandroid:
.
-
- Czcionki do pobrania:
- Nowa funkcja
FontsContractCompat
, która pozwala żądać czcionek od dostawcy czcionek zamiast grupować je w aplikacji. - Czcionki można też pobierać w formacie XML i używać w układach.
- Nowa funkcja
-
Biblioteka zgodności emotikonów:
-
EmojiCompat
może przetworzyć obiektCharSequence
i dodaćEmojiSpans
. -
EmojiTextView
i inne widżety do wyświetlania emotikonów. -
FontRequestEmojiCompatConfig
, aby poprosić dostawcę czcionki o czcionkę emotikonów.
-
-
Autoskalowanie tekstu:
- Nowe metody w
TextViewCompat
oraz atrybuty XML sterujące automatycznym rozmiarem wTextView
.
- Nowe metody w
- Elementy sterujące odtwarzaniem w funkcji Currents z obsługą przewijania:
-
- Nowy
PlaybackTransportRowPresenter
renderujący elementy sterujące odtwarzaniem za pomocą paska SeekBar. - Nowy
PlaybackTransportControlGlue
, który obsługujePlaybackTransportRowPresenter
i obsługuje przewijanie. - Nowa klasa bazowa
PlaybackSeekDataProvider
dla aplikacji do udostępniania miniatur przewijania dla:PlaybackTransportControlGlue
.
- Nowy
- Magazyn danych preferencji:
-
PreferenceDataStore
umożliwia teraz wdrożenie własnych ustawień pamięci masowej ustawionych za pomocą nowych metod wPreference
iPreferenceManager
.
-
Znane problemy
- Integracja czcionek i emotikonów do pobrania z Usługami Google Play działa tylko w Usługach Google Play w wersji 11 lub nowszej, które są obecnie dostępne w ramach programu testów beta Usług Google Play.
Poprawki błędów
-
Interfejs API
MediaBrowserCompat.search()
nie działa (problem AOSP: 262170) -
ViewCompat.postInvalidateOnAnimation()
zgłasza wyjątek (problem AOSP: 80146) -
Funkcja
onActivityCreated()
wywołała fragmenty w zniszczonej aktywności -
Funkcja
RecyclerView.isComputingLayout()
powinna zwracać wartość „prawda” podczas pobierania z wyprzedzeniem -
Gdy przejście
Fade
zostanie przerwane i odwrócone,View
rozpocznie animację od początku. (Naprawa przeniesiona z Android Framework). -
Transition.Fade
ignoruje początkową wersję alfa wartościView
(problem AOSP 221820)
Wersja 26.0.0 alfa 1
(Marzec 2017 r.)
Uwaga: 26.0.0-alfa1 jest wersją przedpremierową. Interfejs API może się zmienić i nie musi zawierać funkcji ani poprawek błędów z najnowszych stabilnych wersji Biblioteki pomocy.
Ważne zmiany
Uwaga: minimalna wersja pakietu SDK została zwiększona do 14. W związku z tym wiele interfejsów API, które istniały tylko w celu zapewnienia zgodności z interfejsem API < 14, zostało wycofanych. Klienci tych interfejsów API powinni przejść na ich odpowiedniki na platformie, zgodnie z informacjami na stronach z informacjami dla każdego wycofanego interfejsu API.
- Moduł pomocy procentowej został wycofany. Klienty tego modułu powinny przejść na nowy widżet ograniczeń Układ, który jest dostępny w SDK Manager jako oddzielny artefakt.
- Moduł fragmentów pomocniczych nie jest już zależny od modułu support-media-compat.
Nowe interfejsy API
Dodaliśmy wiele nowych klas, metod i stałych w celu zapewnienia wstecznej obsługi interfejsów API platform dodanych w wersji testowej O.
IME_FLAG_NO_PERSONALIZED_LEARNING
: IME mogą wykrywać flagi „no learning” (brak uczenia się) w przypadku aplikacji w trybie prywatnym (np. przeglądarek). Ta funkcja pomaga edytorom IME określić, czy aplikacja jest w trybie prywatnym, i mogą wyłączyć funkcje edukacyjne lub adaptacyjne, gdy aplikacja pracuje w tym trybie.
Pełną listę zmian interfejsu API w wersjach 25.2.0–26.0.0–alfa znajdziesz w raporcie Różnice w interfejsie API biblioteki pomocy.
Poprawki błędów
- W niektórych przypadkach prostą animację
AutoTransition
można przerwać, aby wyświetlić „przeskoki”. (numer AOSP: 221816)
Wersja 25.4.0
(czerwiec 2017 r.)
Ważne: biblioteki pomocy są teraz dostępne w repozytorium Google Maven. Nie musisz pobierać repozytorium pomocy z Menedżera SDK. Więcej informacji znajdziesz w artykule o konfigurowaniu biblioteki pomocy.
Ważne zmiany
-
executePendingTransactions()
,commitNow()
,popBackStackImmediate()
i podobne wywołania transakcji nie są dozwolone podczas zmiany stanuFragmentManager
. Wykonywanie transakcji przez powracających klientów jest niebezpieczne iFragmentManager
egzekwuje to teraz podczas zmian stanu. - Równocześnie z tą biblioteką pomocy udostępniamy też multidex w wersji 1.0.2. W tej wersji wprowadziliśmy te ważne zmiany:
- Umożliwia instalowanie wielu plików APK z narzędziami.
- Wycofuje MultiDexTestRunner (zamiast tego należy użyć AndroidJUnitRunner).
- Zapewnia lepszą ochronę przed nieprawidłowymi funkcjami zarządzania wyodrębnianiem archiwów w aplikacji.
- Naprawiono błąd, który mógł prowadzić do porzucania plików tymczasowych.
- Szybsza instalacja w przypadku równoczesnych procesów.
- Usunięto błąd instalacji interfejsu API 19 i 20.
Nowe i zmodyfikowane interfejsy API
Modyfikowanie i interpolacja ścieżki są obsługiwane w programie AnimatedVectorDrawableCompat
. Przekształcanie ścieżki umożliwia zmianę kształtów z jednej ścieżki (określonej jako android:valueFrom
) na inną (określoną jako android:valueTo
), aby uzyskać złożone i atrakcyjne efekty wizualne. Interpolacja ścieżki umożliwia określenie interpolatorów dla AnimatedVectorDrawableCompat
jako ścieżek (określonych jako android:pathData
w pliku XML interpolatora).
Różnice w interfejsie API
Rozwiązane problemy
- Wyjątek (wyjątek o wartości null podczas nawiązywania połączenia z MediaBrowserServiceCompat)
- Interfejs API MediaBrowserCompat.search() nie działa (problem AOSP: 262170)
- Wywołania zwrotne ReviewFragment onItemClicked nie działają w wersji 25.3.0
- Wyjątek NullPointerException podczas przewijania w górę i w dół w VerticalGridView w wersji 25.3.1
- ClassCastException w obiekcie SimpleArrayMap.allocArrays()
Wersja 25.3.1
(Marzec 2017 r.)
Rozwiązane problemy
SwitchCompat
wymaga pakietu SDK w wersji 14 lub nowszej. (numer AOSP: 251302)- Oparta na fizyce animacja
updateListener
pomija pierwszą klatkę. - Animacja etykiety
BottomNavigationView
jest uszkodzona.
Wersja 25.3.0
(Marzec 2017 r.)
Ważne zmiany
Metadane wersji biblioteki pomocy zostaną automatycznie dodane do AndroidManifest.xml
podczas kompilacji z Gradle, co upraszcza śledzenie wersji w kompilacjach publicznych. Na przykład:
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
Elementy wycofane
Niektóre metody i klasy zostały w tej wersji wycofane. Te wycofane interfejsy API zostaną usunięte w przyszłej wersji, a deweloperzy powinni je przenieść z innych witryn. Więcej informacji o przechodzeniu z konkretnego interfejsu API znajdziesz w jego dokumentacji.
ExifInterface
- Metoda logiczna
getLatLong(float[])
została wycofana. Użyj nowej metodygetLatLong()
, która nie przyjmuje żadnych argumentów i zwracadouble[]
. mediacompat
Funkcja PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
została wycofana. Użyj nowej metodysetErrorMessage(int, CharSequence)
, która przekazuje kod błędu i opcjonalny opis.
Interfejs EXTRA_SUGGESTION_KEYWORDS
został wycofany. Zamiast tego użyj funkcji wyszukiwaniaMediaBrowserCompat
.v7.recyclerview
- Nazwa
LinearLayoutManager.getInitialItemPrefetchCount()
została zmieniona naLinearLayoutManager.getInitialPrefetchItemCount()
. Stara nazwa jest nadal obsługiwana, ale zostanie usunięta w kolejnej wersji.
Nowe i zmodyfikowane interfejsy API
appcompat-v7
- Nowa metoda
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
upraszcza wyłączanie animacji ikony przełączania szuflady nawigacji. customtabs
- Dodano obsługę kanałów wiadomości. Szczegółowe informacje znajdziesz w dokumentacji
CustomTabsService.requestPostMessageChannel()
iCustomTabsService.postMessage()
. dynamic-animation
- Nowa biblioteka animacji oparta na fizyce, która udostępnia zestaw interfejsów API do tworzenia animacji, które dynamicznie reagują na dane wejściowe użytkownika.
leanback-v17
- Dodano obsługę tła paralaksy. Więcej informacji znajdziesz w dokumentacji
Parallax
. - Dodano widżet
TimePicker
do wybierania czasu w interfejsie TV. mediacompat
- Dodano funkcję wyszukiwania. Szczegółowe informacje znajdziesz w dokumentacji
MediaBrowserCompat.search()
iMediaBrowserServiceCompat.onSearch()
. - Dodano obsługę trybów tasowania i powtarzania. Szczegółowe informacje znajdziesz w dokumentacji
MediaSessionCompat.setRepeatMode()
isetShuffleModeEnabled()
.
Rozwiązane problemy
StaggeredGridLayoutManager
zgłaszaIllegalArgumentException
(problem AOSP 230295)- Pobieranie z wyprzedzeniem
RecyclerView
nie obsługuje prawidłowo elementuRecyclerView
, który jest dołączony, ale nie jest widoczny na ekranie LinearLayout
nie został rozpoznany przez Robolectrica- Po zniszczeniu elementu
Activity
wywoływany jest nieprawidłowy adres URLonActivityCreated()
dla jego fragmentów - Konstruktor
AppCompatImageView
powodujeArrayIndexOutOfBoundsException
- Słaba wydajność interfejsu podczas przenoszenia aktywności w usłudze
Call.Details
Wersja 25.2.0
(luty 2017 r.)
Ważne zmiany
Rozwiązane problemy
- W tej wersji rozwiązano poważny problem z mediarouterem, w wyniku którego korzystanie z interfejsów API urządzenia A2DP i routingu multimediów mogło powodować, że urządzenie przestało reagować i wymagało ponownego uruchomienia.
- Klasa
FragmentManager.FragmentLifecycleCallbacks
jest teraz statyczna.
Rozwiązane problemy
- Pokazywanie prezentacji z odbiciem ekranu powoduje odłączenie urządzenia od Wi-Fi
- Przycisk multimediów nie obsługiwał poprawnie aplikacji do multimediów, które nie zarejestrowały się w usłudze
setMediaButtonReceiver()
-
Błąd
VectorDrawable
z zasobem ciągu znaków (problem AOSP 232407) TextInputLayout
nakładka podpowiedź i tekst, jeśli tekst jest ustawiony przez XML (problem AOSP 230171)- Wyciek pamięci w instancji
MediaControllerCompat
(problem AOSP 231441) -
Awaria
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
RecyclerView
awarii podczas recyklingu właścicieli widoków (problem AOSP 225762)getAllowGeneratedReplies()
nieprawidłowo zwraca wartość „fałsz” dla działań w obrębieWearableExtender
Wersja 25.1.1
(styczeń 2017 r.)
Ważne: w klasie android.support.v7.media.MediaRouter
w wersjach 25.1.1 i 25.1.0 Biblioteki pomocy występuje znany błąd. Jeśli Twoja aplikacja korzysta z MediaRouter
w wersji 7, zaktualizuj ją do wersji 25.2.0 biblioteki pomocy, co naprawia błąd.
Ważne zmiany
-
Transakcje z fragmentem kodu można teraz optymalizować w ramach różnych transakcji i między nimi. Optymalizowanie operacji związanych z fragmentami może wyeliminować operacje, które anulowane. Załóżmy na przykład, że są wykonywane razem 2 transakcje – jedna z nich dodaje fragment A, a druga zastępuje fragment A fragmentem B. W takim przypadku pierwsza operacja może zostać anulowana i dodany tylko fragment B. Oznacza to, że fragment A może nie przejść przez cykl tworzenia/zniszczenia.
Efektem ubocznym takiej optymalizacji jest to, że zmiany stanu fragmentów mogą nie być zgodne z oczekiwaną kolejnością. Załóżmy na przykład, że jedna transakcja dodaje fragment A, druga dodaje fragment B, a trzecia usuwa fragment A. Bez optymalizacji fragment B może oczekiwać, że podczas jego tworzenia będzie istnieć także fragment A, ponieważ fragment A zostanie usunięty po dodaniu fragmentu B. Dzięki optymalizacji fragment B nie może mieć pewności, że fragment A występuje podczas tworzenia fragmentu B, ponieważ optymalizacja może usunąć utworzenie i zniszczenie fragmentu A.
Ta optymalizacja jest domyślnie wyłączona. Aby włączyć optymalizację, wywołaj
FragmentTransaction.setAllowOptimization(true)
. - Fragmenty mogą teraz opóźniać przejścia i animacje do momentu, aż będą gotowe za pomocą elementów
Fragment.postponeEnterTransition()
iFragment.startPostponedEnterTransition()
. Ten interfejs API jest podobny doActivity.postponeEnterTransition()
iActivity.startPostponedEnterTransition()
używanego z Przenoszeniem aktywności.
Rozwiązane problemy
-
Błąd
MediaSessionCompatTest
zwraca błądIllegalArgumentException
-
DetailsFragment.installTitleView()
nie jest wywoływany w 25.1.0 - Transakcja związana z fragmentem zachowuje widok ducha przy zamykaniu (problem AOSP: 230679)
-
BottomNavigationView
wymaga odstępów między ikoną elementu a tekstem (problem AOSP 230653) - Brak wybranych detektorów w nowej wersji
PlaybackFragment
iPlaybackSupportFragment
-
Element
TextInputLayout
nie zmienia się prawidłowo w emulatorze z biblioteki pomocy w wersji 25.1.0 (problem w AOSP 230461) - Nie można zastąpić menu usługi
BottomNavigationView
(problem w AOSP: 230343) -
RecyclerView
z błędami (StaggeredGridLayoutManager
) obejmującymi elementy o pełnej zakresu (problem AOSP: 230295) - Awaria
MediaSessionCompat
przy korzystaniu zsetCallback(null)
-
PlaybackGlueHostOld
iPlaybackSupportGlueHostOld
nie powiadamiają wywołań zwrotnych o zmianie wiersza odtwarzania -
Nie można rozpocząć odtwarzania przykładu elementu
PlaybackOverlayFragment
/test
-
W interfejsie API 15 występuje błąd
RecyclerViewFocusRecoveryTest
- Wiersz „Zrzuty ekranu” znajduje się na górze ekranu
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
awarie w interfejsie API 15 -
setActions()
w lokalizacjionSubactionClicked()
nie działa -
RecyclerView
awarii podczas recyklingu niektórych widoków
Wersja 25.1.0
(grudzień 2016 r.)
Ważne: w klasie android.support.v7.media.MediaRouter
w wersjach 25.1.1 i 25.1.0 Biblioteki pomocy występuje znany błąd. Jeśli Twoja aplikacja korzysta z MediaRouter
w wersji 7, zaktualizuj ją do wersji 25.2.0 biblioteki pomocy, co naprawia błąd.
Ważne zmiany
- Klienty zagnieżdżonych widżetów
RecyclerView
(np. przewijanych w pionie list z przewijaniem poziomym) mogą znacznie zwiększyć wydajność, wskazując menedżery układu elementów wRecyclerView
wewnętrznym widżetie, ile elementów należy przygotować przed przewinięciem ekranu. WywołanieLinearLayoutManager.setInitialPrefetchItemCount(N)
, gdzie N to liczba wyświetleń widocznych dla każdego elementu wewnętrznego. Jeśli na przykład wewnętrzne listy poziome wyświetlają co najmniej 3,5 wyświetlenia elementu naraz, możesz poprawić skuteczność, wywołując funkcjęLinearLayoutManager.setInitialPrefetchItemCount(4)
. Dzięki temuRecyclerView
może na początku utworzyć wszystkie istotne widoki, podczas gdy zewnętrzny komponentRecyclerView
przewija się, co znacznie zmniejsza przypadki zacinania się podczas przewijania. - Reguły
FragmentActivity.setSupportMediaController()
iFragmentActivity.getSupportMediaController()
zostały wycofane. Użyj nowych statycznych metodMediaControllerCompat.setMediaController()
iMediaControllerCompat.getMediaController()
. - Gdy klient określa odcień widżetu za pomocą kolorystyki aplikacji (na przykład
appcompat:buttonTint
), jest odpowiedzialny za udostępnienie wszystkich niezbędnych stanów (np. „wyłączony”, „naciśnięty” itp.). Jest to zgodne ze sposobem określania odcieni widżetów podczas korzystania z kolorowania platformy.
Nowe i zmodyfikowane interfejsy API
- Dodano bibliotekę obsługi ExifInterface. Ta biblioteka wyodrębnia obsługę odczytu danych Exif z plików JPEG i nieprzetworzonych oraz określania informacji Exif w plikach graficznych JPEG.
- Przekształcono format
Snackbar
, aby umożliwić aplikacjom wyświetlanie niestandardowych treści.BaseTransientBottomBar
to nowa klasa bazowa, która ujawnia ogólne zachowanie przesuwania i animacji. - Dodaliśmy nowy pakiet leanback.media, który zawiera klasy pomocnicze do integracji odtwarzaczy multimedialnych z aplikacjami na Androida TV.
- Do biblioteki obsługi preferencji w wersji 7 dodano zasób
SeekBarPreference
z dostosowywanym układem i atrybutami. - Do biblioteki pomocy wersji 4 dodano klasę
ArraySet
. Ta klasa odpowiada klasie platformyArraySet
, która została wprowadzona w interfejsie API na poziomie 23. RecyclerView
Ulepszenia pobierania elementów z wyprzedzeniem RecyclerView:- Zagnieżdżone pobieranie z wyprzedzeniem
RecyclerView
umożliwia pobieranie z wyprzedzeniem treści z elementuRecyclerView
w ramach innego przewijanego elementuRecyclerView
, przy czym interfejs API kontroluje stopień pobierania z wyprzedzeniem: - Dodano interfejsy API do niestandardowych obiektów
LayoutManager
do zaimplementowania, aby umożliwić wstępne pobieranie podczas przewijania i przewinięcia - Ulepszenia pobierania z wyprzedzeniem, pozwalające uzyskać jak największą liczbę operacji tworzenia/powiązywania w odstępach czasowych między klatkami
- Zagnieżdżone pobieranie z wyprzedzeniem
Rozwiązane problemy
- Przełącznik widoczności hasła nie powiódł się testów ułatwień dostępu.
- Appcompat nie respektuje
state_enabled
na urządzeniach w wersji wcześniejszej niż L. - Dodano mechanizm przywracania fokusa do zadania
RecyclerView
. Rozwiązano też problem z niedziałającym fragmentem preferencji podczas korzystania z nawigacji pada kierunkowego, np. na urządzeniach z Androidem TV. - SKAdNetwork: awarie w funkcji PrzeglądajFragment przy wyłączonych nagłówkach i pustym adapterze.
- Appcompat:
AlertDialog
jest za szeroki. InputContentInfoCompat
wywołuje metodęrequestPermission()
, gdy powinna wywołać metodęreleasePermission()
.MediaBrowserCompat
awarii.- CoordinatorLayout mierzy lub ustawia widoki, gdy widoczność jest ustawiona na
GONE
. - Nie udało się zabarwić
AnimatedVectorDrawableCompat
na poziomie interfejsu API poniżej 24 - Biblioteka BeyondCorp aktywuje fałszywe błędy lintowe
- Biblioteka palet powodowała błędy testów na każdym poziomie interfejsu API
- Nieudane testy w funkcji SKAdNetwork:
RecyclerView
RecyclerView
awarii podczas recyklingu właścicieli widoków (problem AOSP 225762)- Element
Fragment.onDestroy()
nie został wywołany do fragmentu w tle - Ekran
CollapsingToolbarLayout
nie jest rysowany po zwinięciu CoordinatorLayout.offsetChildByInset()
rzutujeIllegalArgumentException
- Animowanie elementów
RecyclerView
odłącza wewnętrzne elementyRecyclerView
, aby zapobiec pobieraniu z wyprzedzeniem w przyszłości - Dołączonych elementów
RecyclerView
nie można wstępnie pobierać zagnieżdżonego - W przypadku pierwszego układu dane pobierania z wyprzedzeniem dotyczące zagnieżdżonych elementów
RecyclerView
są odrzucane - Pobieranie z wyprzedzeniem
RecyclerView
kończy się niepowodzeniem, jeśli 2 zdarzenia przeciągania dochodzą do tej samej pozycji - Układ
RecyclerView
powinien być spekulacyjny podczas renderowania RenderThread - Zasoby kolorów skonfigurowane w trybie nocnym przekonwertowane na elementy rysunkowe nie zawsze są prawidłowo usuwane z pamięci podręcznej zasobów
FloatingActionButton
: Automatyczne ustawianie BackgroundTintList nie działa prawidłowo (problem w systemie AOSP: 227428)TextInputLayout
: krój czcionki nie jest ustawiany dla ErrorView (problem w AOSP 227803)TextInputLayout
zawsze wraca do koloru jasnego błędu poniżej interfejsu API 23 (problem AOSP 221992)- Przycisk
FloatingActionButton
wyświetla się jako naciśnięty, gdy wskaźnik odejdzie
Pełna lista publicznych poprawek błędów jest dostępna w narzędziu AOSP Issue Tracker.
Elementy wycofane
Niektóre metody i klasy zostały w tej wersji wycofane. Te wycofane interfejsy API zostaną usunięte w przyszłej wersji, a deweloperzy powinni je wycofać. Więcej informacji na temat przejścia z konkretnego interfejsu API znajdziesz w jego dokumentacji.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
Wersja 25.0.1
(Listopad 2016 r.)
Rozwiązane problemy
- Przełącznik haseł w
TextInputLayout
jest teraz domyślnie wyłączony, aby uniknąć niepotrzebnego zastępowania określonych przez dewelopera końcowych elementów rysunkowych. Można go włączyć ręcznie za pomocą atrybutu XMLpasswordToggleEnabled
. BottomNavigationView
elementy są teraz w jednym wierszu, zgodnie ze specyfikacją Material.RecyclerView
awarii podczas pobierania z wyprzedzeniem, jeśli menedżer układu ma wartość null.BottomNavigationView
: wysokość jest teraz ustawiona prawidłowo. (numer AOSP: 226182)- Awaria
BottomNavigationView
podczas automatycznego dodawania pozycji menu. (numer AOSP: 225731) - Poprawiono
TextInputLayout
elementy złożonego przeciągania w lewo i w prawo. (numer AOSP: 225836) RecyclerView
awarii podczas recyklingu właścicieli widoków. (numer AOSP 225762)- Funkcja TalkBack: często wypowiadane jest słowo „null” podczas wyświetlania treści na podzielonym ekranie.
RecyclerView
: problemy z renderowaniem w Android Studio. (numer AOSP 225753)BottomNavigationView
nadal wyświetla wybraną pozycję menu po tym, jakonNavigationItemSelected()
zwraca wartość fałsz. (numer AOSP: 225898)- ForwardListener zgłasza
NoSuchMethodError
. (Problem AOSP: 225647) TextInputEditText
nie wyświetla wskazówek w trybie wyodrębniania IME. (numer AOSP: 221880)
Pełna lista publicznych poprawek błędów jest dostępna w narzędziu AOSP Issue Tracker.
Wersja 25.0.0
(październik 2016 r.)
Ważne zmiany
- Konstruktor
ContextCompat
został zabezpieczony. Ta klasa nie powinna być utworzona publicznie, ale może zostać rozszerzona przez biblioteki pomocy kierowane na nowsze poziomy interfejsów API. - Konstruktor
ActivityCompat
został zabezpieczony. Ta klasa nie powinna być utworzona publicznie, ale może zostać rozszerzona przez biblioteki pomocy kierowane na nowsze poziomy interfejsów API. - Element
getReferrer(Activity)
został oznaczony jako statyczny. -
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
został(a) usunięty(a). Należy usunąć wszystkie implementacje tej metody przez klienta. -
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
został(a) usunięty(a). Wykorzystanie powinno zostać zastąpione metodą o odpowiedniej nazwiefromMediaSession()
. -
Usunięto:
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
. Wykorzystanie powinno zostać zastąpione metodą o odpowiedniej nazwieMediaSessionCompat.QueueItem#fromQueueItem
. -
android.support.v7.widget.Space
został(a) usunięty(a). Wykorzystanie należy zastąpić wartościąandroid.support.v4.widget.Space
.
Nowe interfejsy API
-
Klasa
android.support.design.widget.BottomNavigationView
implementuje wzorzec dolnego nawigacji ze specyfikacji Material Design. - Nowy pakiet
android.support.v13.view.inputmethod
zawiera klasy umożliwiające dostęp do funkcjiandroid.view.inputmethod.InputConnection
wprowadzonych po poziomie API 13. -
Klasa
android.v7.widget.RecyclerView.DividerItemDecoration
stanowi podstawową implementację pionowych lub poziomych separatorów między elementami. - Nowe style ozdobne w
android.support.v7.app.NotificationCompat
,DecoratedCustomViewStyle
iDecoratedMediaCustomViewStyle
, klasy lustrzane dodane w interfejsie API platformy 24.
Rozwiązane problemy
Pełna lista publicznych poprawek błędów jest dostępna w narzędziu AOSP Issue Tracker.
Wersja 24.2.1
Wrzesień 2016 r.
Rozwiązane problemy:
- Elementu
FloatingActionButton
nie można już zakotwiczyć z pośrednimi elementami podrzędnymiCoordinatorLayout
. (numer AOSP: 220250) - Obraz w obiekcie
CollapsingToolbarLayout
nie skaluje się prawidłowo wfitsSystemWindows=true
. (numer AOSP: 220389) CoordinatorLayout
zgłaszaIndexOutOfBoundsException
po wyświetleniu i zamknięciu aplikacjiSnackbar
. (Problem AOSP: 220762)TextInputLayout
nie rozpoznaje koloru tekstu błędu. (numer AOSP: 220305)BatchedCallback.onMoved()
dzwoni pod numerBatchedCallback.onInserted()
. (numer AOSP: 220309)- Element
TextInputLayout
zastępuje element, który można rysować w prawo. (numer AOSP: 220728)
Pełna lista publicznych poprawek błędów jest dostępna w narzędziu AOSP Issue Tracker.
Wersja 24.2.0
sierpniu 2016 r.
W wersji 24.2.0 wprowadziliśmy następujące zmiany:
- Podział biblioteki pomocy (wersja 4)
- Aktualizacje interfejsu API
- Zmiany w działaniu
- Wycofanie
- Poprawki błędów
Uwaga: wersja 24.2.0 wyłącza obsługę Androida 2.2 (poziom interfejsu API 8) i starszych wersji. Klasy i metody, które istnieją tylko do obsługi tych wersji systemu, są teraz oznaczone jako wycofane i nie powinny być już używane. Te wycofane klasy i metody mogą zostać usunięte w kolejnej wersji.
Podział biblioteki pomocy (wersja 4)
W tej wersji biblioteka pomocy dla wersji 4 została podzielona na kilka mniejszych modułów:
-
support-compat
- Udostępnia kod zgodności nowych interfejsów API platformy, takich jak
Context.getDrawable()
iView.performAccessibilityAction()
. -
support-core-utils
-
Udostępnia wiele klas narzędzi, takich jak
AsyncTaskLoader
iPermissionChecker
. -
support-core-ui
- Stosuje różne komponenty związane z interfejsem, np.
ViewPager
,NestedScrollView
iExploreByTouchHelper
. -
support-media-compat
-
Backporty części platformy media, w tym
MediaBrowser
iMediaSession
. -
support-fragment
- Sportuje platformę fragment. Ten moduł wymaga tych atrybutów:
support-compat
,support-core-utils
,support-core-ui
isupport-media-compat
.
Jeśli w skrypcie Gradle podasz support-v4
, plik APK będzie zawierał wszystkie te moduły, aby zapewnić zgodność wsteczną. Jeśli jednak chcesz ograniczyć rozmiar pliku APK, najlepiej wymień tylko te moduły, których potrzebuje Twoja aplikacja.
Aktualizacje interfejsu API
- Klienci korzystający z kart niestandardowych mogą określać, czy mają być uruchamiane aplikacje błyskawiczne. Aplikacje błyskawiczne nie są jeszcze ogólnie dostępne. Aby włączyć lub wyłączyć aplikacje błyskawiczne, wywołaj
CustomTabsIntent.Builder.setInstantAppsEnabled()
lub wpiszEXTRA_ENABLE_INSTANT_APPS
. Domyślnie karty niestandardowe włączają aplikacje błyskawiczne, gdy ta funkcja stanie się dostępna. TextInputLayout
dodaje obsługę przełącznika widoczności haseł ze specyfikacji Material Design.- Nowy pakiet
android.support.transition
przenosi platformę Przejście do interfejsów API na poziomach 14 i wyższych. Więcej informacji znajdziesz w dokumentacjiandroid.support.transition
. - Biblioteka obsługi kart niestandardowych umożliwia teraz używanie
RemoteViews
na dodatkowym pasku narzędzi. Istniejąca metodasetToolbarItem()
została wycofana. AppCompatResources
dodaje możliwość wczytywania<vector>
(na poziomie API 9 i wyższym) lub<animated-vector>
(na poziomie API 11 i wyższym) z identyfikatora zasobu za pomocą nowej metodygetDrawable()
.CoordinatorLayout
obsługuje teraz definiowanie widoków wstawionych oraz określanie, że inne widoki danych powinny pomijać te widoki. Dzięki temu aplikacje mogą powielać wzorce zachowań podobne do sposobu, w jakiFloatingActionButton
różni się od klasySnackbar
, ale z zachowaniem dowolnego widoku elementów podrzędnych. Więcej informacji znajdziesz w dokumentacji referencyjnejLayoutParams.insetEdge
iLayoutParams.dodgeInsetEdges
.- Nowa klasa
DiffUtil
może obliczać różnicę między dwoma zbiorami i wysyłać listę operacji aktualizacji odpowiednich do wykorzystania przezRecyclerView.Adapter
. -
Obiekt
RecyclerView.OnFlingListener
został dodany, by umożliwić obsługę niestandardowego zachowania w odpowiedzi na powieści. KlasaSnapHelper
zawiera implementację do przyciągania wyświetleń podrzędnych, a klasaLinearSnapHelper
rozszerza tę implementację, aby zapewnić wyśrodkowane działanie przyciągania, podobne do metodyViewPager
. - Biblioteka kart niestandardowych pozwala teraz klientom wysyłać żądania do standardowego interfejsu przeglądarki zamiast do interfejsu kart niestandardowych przez wywołanie
CustomTabsIntent.setAlwaysUseBrowserUI()
. Jest to przydatne w sytuacjach, gdy przeglądarka domyślnie korzysta z interfejsu kart niestandardowych, ale użytkownik wybrał interfejs standardowy.
Zmiany w działaniu
- Jeśli używasz funkcji dni i nocy w bibliotece appcompat, system automatycznie odtwarza teraz Twoją aktywność zawsze wtedy, gdy zmieni się tryb dzienny lub nocny (z powodu pory dnia lub połączenia z usługą
AppCompatDelegate.setLocalNightMode()
). - Jeśli pasek stanu jest przezroczysty,
Snackbar
rysuje się teraz za paskiem nawigacyjnym.
Biblioteka MediaRouter
Urządzenia Bluetooth nie są już wymienione jako trasy multimediów. Kierowaniem dźwięku do urządzeń Bluetooth zarządza się teraz wyłącznie na poziomie systemu Android.
Elementy wycofane
Wycofane klasy i metody mogą zostać usunięte w kolejnej wersji. Jak najszybciej zrezygnuj z tych interfejsów API.
- Kilka metod z poniższych klas było wymaganych tylko w interfejsie API 8 lub wyższych i nie można ich już używać. Zamiast tego używaj implementacji platformy.
android.support.v4.view.KeyEventCompat
: zamień naKeyEvent
android.support.v4.view.MotionEventCompat
: użyjMotionEvent
android.support.v4.view.ViewCompat
: użyjView
android.support.v4.view.ViewConfigurationCompat
: użyjViewConfiguration
-
Wycofaliśmy atrybut
AccessibilityServiceInfoCompat.getDescription()
i zastąpiliśmy go wartościąAccessibilityServiceInfoCompat.loadDescription()
, która zwraca prawidłowo zlokalizowany opis. - Nie twórz bezpośrednio instancji klasy
ActivityCompat
. W nadchodzącej wersji niestatyczna metodagetReferrer(Activity)
zostanie zmieniona na statyczną. - Interfejs
CoordinatorLayout.Behavior.isDirty()
został wycofany i usługaCoordinatorLayout
nie ma już do niego dostępu. Wszystkie implementacje oraz wywołania tej metody należy usunąć. - Interfejs
MediaSessionCompat.obtain()
został wycofany i zastąpiony metodąfromMediaSession()
o większej nazwie. - Interfejs
MediaSessionCompat.QueueItem.obtain()
został wycofany i zastąpiony metodąfromQueueItem()
o większej nazwie. - Kilka klas abstrakcyjnych zostało wycofanych i zastąpionych interfejsami, które lepiej odzwierciedlają ich platformy.
- Usługa
AccessibilityStateChangeListenerCompat
została zastąpiona przez interfejsAccessibilityManagerCompat.AccessibilityStateChangeListener
. - Usługa
OnCloseListenerCompat
została zastąpiona interfejsemSearchViewCompat.OnCloseListener
. - Zastąpiono
OnQueryTextListenerCompat
interfejsemSearchViewCompat.OnQueryTextListener
.
- Usługa
- Interfejs
CustomTabsSession.setToolbarItem()
został wycofany i zastąpiony przez obiektysetSecondaryToolbarViews()
oparte na obiektach RemoteView.
Poprawki błędów
Te znane problemy zostały rozwiązane w wersji 24.2.0:
- Sprawdź, czy wskaźnik
SwipeRefreshLayout
jest wyświetlany, gdy wywoływany jest parametrsetRefreshing(true)
przed pierwszym wynikiem pomiaru (problem AOSP 77712) - Zapobiegaj migotaniu strony
TabLayout
podczas zmieniania stron (problem AOSP 180454) - Unikaj regresji typu
ClassNotFoundException
przy cofaniu marszlinguSavedState
na poziomie API 11 lub niższym (problem AOSP 196430).
Pełna lista publicznych poprawek błędów jest dostępna w narzędziu AOSP Issue Tracker.
Wersja 24.1.1
Lipiec 2016 roku
Rozwiązane problemy:
- Rozwiązaliśmy problem w wersji 24.1.0, który wpływał na identyfikatory zasobów współdzielone przez biblioteki pomocy. Ten problem powodował, że w aplikacjach, które korzystają z bibliotek obsługi z zasobami (np. design i appcompat), wystąpiły problemy spowodowane niezgodnością identyfikatorów zasobów.
Wersja 24.1.0
Lipiec 2016 roku
- Zmiany w bibliotece pomocy dotyczącej wersji 4:
-
NotificationCompat.Action.WearableExtender
zawiera nowe metodygetHintDisplayActionInline()
isetHintDisplayActionInline()
zapewniające zgodność z Androidem Wear 2.0 w wersji testowej. Metody te umożliwiają aplikacji określenie, że działanie powinno być wyświetlane w treści powiadomienia.- Wywołanie
Fragment.setUserVisbileHint()
nie będzie już powodować rozpoczęcia fragmentu, jeśli wskazówka została dodana do elementuFragmentTransaction
, który nie został jeszcze zatwierdzonych. Ma to wpływ na użytkowników interfejsuFragmentPagerAdapter
, którzy zastępująsetUserVisbileHint()
i przyjmują określony stan cyklu życia fragmentu po wywołaniu metodysuper.setUserVisibleHint()
. Więcej informacji znajdziesz na stronie z dokumentacją dokumentacjiFragment.setUserVisbileHint()
.
Rozwiązane problemy:
- TabLayout.setCustomView(null) daje wynik w NullPointerException (problem AOSP 214753)
- Układ kart nieprawidłowo wyróżnia karty niestandardowe (problem AOSP 214316)
- AppCompatTextHelper używa nieprawidłowo posortowanej tablicy atrybutów (problem AOSP 214366)
- Nie można odwołać się do elementu VectorDrawable w pliku XML kontenera z możliwością rysowania podczas korzystania z niestandardowego elementu ContextWrapper (problem AOSP 214055)
- ViewDragHelper.saveLastMotion() zgłasza ArrayIndexOutOfBoundsException (problem AOSP 212945)
- Podczas korzystania z parametru setState(STATE_EXPANDED) element bottomSheetBehavior rozwija się do starej wysokości treści (problem AOSP 213660)
- CollapsingToolbarLayout nie obsługuje elementów podrzędnych, które można przypiąć, w górnym lub dolnym marginesie (problem AOSP 213001).
- Tytuł przeglądania w funkcji Crowdsource nie obsługuje wyrównania RTL (problem AOSP 213461)
- PagerTabStrip znika z powodu braku odziedziczonej adnotacji (problem AOSP 213359)
- Powiązanie danych powoduje zgłoszenie wyjątku NullPointerWyjątek w przypadku użycia wartości logicznej do ustawiania flag warunkowych (problem AOSP 191841)
- CoordinatorLayout nie odpowiada na metodę setFitsSystemWindows() (problem AOSP 212720)
- Awarie bottomSheetBehavior podczas ustawiania stanu początkowego (problem AOSP 203114)
- ViewPager pomija strony, jeśli indeks stron ma dużą wartość (problem AOSP 211734)
- bottomSheetBehavior nie działa w układach dynamicznych (problem AOSP 205226)
Wersja 24.0.0
Czerwiec 2016
- Zmiany w bibliotece pomocy dotyczącej wersji 4:
-
- Dodano
Fragment.commitNow()
dla zatwierdzenia synchronicznego - Dodano użytkownika
NotificationCompat.MessagingStyle
na potrzeby rozmów z wieloma osobami - Dodano
NotificationManagerCompat.areNotificationsEnabled()
igetImportance()
- Funkcja
MediaSessionCompat
odzwierciedla teraz funkcjonalnośćMediaSession
i nie wywołuje już automatycznie funkcjisetMediaButtonReceiver()
.
Uwaga: tylko
MediaBrowserServiceCompat
w wersji 24.0.0 jest zgodne z przyszłymi wersjami Androida po interfejsie API 24. Jeśli używasz poprzednich wersji, zaktualizuj je do tej wersji, aby zapewnić zgodność. - Dodano
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano obsługę odwoływania się do tematycznych obiektów
ColorStateList
z pliku XML
- Dodano obsługę odwoływania się do tematycznych obiektów
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Poprawiono obsługę
AppBarLayout
wzniesień za pomocą funkcjiStateListAnimator
- Poprawiono obsługę
- Zmiany w bibliotece funkcji Currents w wersji 17:
-
- Dodano
OnboardingFragment
, aby umożliwić proces powitania i konfiguracji przy pierwszym uruchomieniu
- Dodano
- Zmiany dotyczące kart niestandardowych:
-
- Dodaliśmy obsługę hierarchii
RemoteViews
na potrzeby dodatkowego paska narzędzi - Dodano element
CustomTabsClient.connectAndInitialize()
na rozgrzewkę jednowierszową
- Dodaliśmy obsługę hierarchii
Wersja 23.4.0
Maj 2016 roku
- Zmiany w bibliotece pomocy dotyczącej wersji 4:
-
- Rozwiązaliśmy problem polegający na tym, że fragmenty były dodawane w niewłaściwej kolejności. (numer 206901)
- Rozwiązanie problemu polegającego na tym, że po przewinięciu poza ekran pasek aplikacji nie był rysowany. (numer 178037)
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano metodę
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
, która umożliwia ponowne włączenie elementów rysowalnych wektorowych w obiektachDrawableContainer
na urządzeniach z Androidem 4.4 (poziom interfejsu API 19) lub starszym. Więcej informacji znajdziesz na stronie AppCompat 23.2 – Age of the vectors. - Naprawiono w API 23 błąd, który powodował, że
AppCompatDelegate.setDefaultNightMode()
nie wczytywał prawidłowych zasobów na poziomie API 23. (Numer 206573) - Rozwiązaliśmy problem, który mógł powodować wyświetlenie błędu
NullPointerException
. (Numer 207638)
- Dodano metodę
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Rozwiązaliśmy problem, który powodował, że
TextInputLayout
nie usuwał odcienia błędu posetErrorEnabled(false)
na poziomie API 21–22 (problem 202829) - Rozwiązaliśmy problem, który powodował, że funkcja
FloatingActionButton
nie zwracała się, gdy animacje były wyłączone. (Numer 206416) - Rozwiązaliśmy problem z funkcją przyciągania w usłudze
AppBarLayout
podczas korzystania z flagami przewijania
. (Numer 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- Rozwiązaliśmy problem, który powodował, że
- Zmiany w bibliotece rysunkowej wektorowej:
-
- Naprawiliśmy błąd, który powodował, że
VectorDrawableCompat
nie renderuje się poprawnie wTextView
na poziomie API 23. (Numer 206227)
- Naprawiliśmy błąd, który powodował, że
Wersja 23.3.0
Kwiecień 2016 r.
- Zmiany w bibliotece pomocy dotyczącej wersji 4:
-
- Dodano
AppLaunchChecker
, aby łatwiej śledzić, jak Twoja aplikacja została uruchomiona przez użytkownika w przeszłości.hasStartedFromLauncher()
informuje, czy użytkownik uruchomił już Twoją aplikację z poziomu ekranu głównego, czy też został uruchomiony w inny sposób (np. aby wyświetlić konkretne adresy URL). - Naprawiliśmy wyciek pamięci w
MediaBrowserServiceCompat.mConnections
. (Numer 205220) - Rozwiązaliśmy problem polegający na tym, że podczas przewracania strony element
ViewPager
nie uwzględniał marginesów strony. (numer 203816) - Element
Fragment.onRequestPermissionsResult()
jest teraz dostarczany do fragmentów podrzędnych.
- Dodano
- Zmiany w bibliotece appcompat w wersji 7:
-
- Naprawiono błąd w
AppCompatSpinner
, który mógł powodować wyświetlanie wielu wyskakujących okienek. (numer 205052) - Naprawiono problem z kolorem przycisków bez obramowania. (Numer 202967)
- Rozwiązaliśmy problem ze zgodnością między
AppCompatDialogFragment
aAlertDialog
. (numer 204805) - Cofnięto zmiany w pliku
TintResources
, które powodowały problemy z pamięcią i konfiguracją. (Numer 205236)
- Naprawiono błąd w
- Zmiany w bibliotece mediarouter v7:
-
- Poprawiono działanie suwaka głośności
MediaRouteControllerDialog
. (Numer 202299)
- Poprawiono działanie suwaka głośności
- Zmiany w bibliotece ustawień wersji 7:
-
- Rozwiązaliśmy problem polegający na tym, że jeśli określono
dividerHeight
, parametrPreferenceFragmentCompat
ulegał awarii. (Numer 204778)
- Rozwiązaliśmy problem polegający na tym, że jeśli określono
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Naprawiliśmy błąd, który powodował, że funkcja
RecyclerView
nie wywoływała wywołań zwrotnych przewijania, jeśli zakres widocznych elementów się zmniejszył. (Numer 200987) - Naprawiliśmy błąd, który powodował, że element
RecyclerView
zawieszał się, gdy miał układ liniowy, był ważony i zawierał obrazy. (Problem: 203276) - Naprawiono awarię w
OrientationHelper.getStartAfterPadding()
. (numer: 180521) - Usunięto awarię z wykorzystaniem
android:nestedScrollingEnabled
. (numer 197932)
- Naprawiliśmy błąd, który powodował, że funkcja
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Naprawiliśmy błąd polegający na tym, że ukryta dolna plansza obsługiwała zdarzenia dotknięcia. (Problem: 203654)
- Naprawiono problem z układem w funkcji
BottomSheetBehavior
, gdy właściwośćfitsSystemWindows
miała wartość prawda. (numer 203057) - Naprawiono problem z ułatwieniami dostępu w
Snackbar
. (numer 182145) - Naprawiono awarię przy przesuwaniu
Snackbar
. (Numer 203924) - Naprawiono błąd w
AppBarLayout
(enterAlways
). (numer 203661) - Naprawiono błąd, który powodował, że
TextInputLayout
niepotrzebnie czyścił filtr koloru tła obiektuEditText
. (Numer 203357)
Wersja 23.2.1
Marzec 2016
- Zmiany w bibliotece pomocy dotyczącej wersji 4:
-
- Naprawiliśmy wyjątek w
DrawableCompat.wrap()
iLayerDrawable
na poziomach API od 17 do 19. (numer 201817) - Naprawiono błąd
ArrayIndexOutOfBoundsException
wViewDragHelper.shouldInterceptTouchEvent()
. (Numer 182262) - Naprawiliśmy błąd w funkcji
ViewPager
związany z obliczaniem przewijania w przypadku zmiany rozmiaru. - Naprawiono błąd
NullPointerException
w przypadku wywołania metodyDrawerLayout.removeDrawerListener()
bez ustawionej wartościDrawerLayout.DrawerListener
. (Numer 202478) - Naprawiliśmy błąd polegający na tym, że
ViewPager
nie ustawiał prawidłowo parametrówAccessibilityEvent
podczas przewijania. - Rozwiązaliśmy problem, który powodował opóźnienie podczas obracania urządzenia podczas korzystania z funkcji
Drawable.wrap()
. (wydanie 201924 r.)
- Naprawiliśmy wyjątek w
- Zmiany w bibliotece appcompat w wersji 7:
-
- Cofnięto zależność od zasobów wektorowych, dzięki czemu deweloperzy korzystający z biblioteki appcompat nie muszą używać
VectorDrawable
ani powiązanych z nim flag kompilacji. - Rozwiązaliśmy problem ze zgodnością trybu nocnego i interfejsu API na poziomie 23. (Numer 201910)
- Rozwiązaliśmy problem ze zgodnością interfejsów
SwitchCompat
i interfejsu API na poziomie 7. (wydanie 201942) - Naprawiono problem z propagowaniem wartości konfiguracyjnych w obiektach zasobów Problem 201928
- Rozwiązaliśmy problem ze zgodnością, który powodował, że przycisk anulowania na poziomie
android.support.v7.app.NotificationCompat.MediaStyle
staje się niewidoczny na poziomie API 21 i niższym. (numer 202156) - Rozwiązaliśmy problem ze zgodnością z zasadą
AppCompatSpinner
w interfejsie API na poziomie 21 i niższym. (Numer 202246) - Rozwiązaliśmy problem, który powodował, że styl
app:textAllCaps = "false"
nie działał. (numer 202117) - Usunięto awarię podczas przywracania
SearchView
. (Numer 201836) - Naprawiono wyciek pamięci podczas zabarwiania zasobów możliwych do rysowania za pomocą AppCompat. (Numer 202379)
- Rozwiązaliśmy problem z właściwością
KeyEvent
w interfejsie API na poziomie 11 i niższym. (numer 202939)
- Cofnięto zależność od zasobów wektorowych, dzięki czemu deweloperzy korzystający z biblioteki appcompat nie muszą używać
- Zmiany w bibliotece widoku kart v7:
-
- Dodaliśmy obsługę trybu nocnego w trybie
CardView
. (numer 194497)
- Dodaliśmy obsługę trybu nocnego w trybie
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Naprawiono błędy związane z różnymi metodami specyfikacji pomiaru. (Numer 201856)
- Skrócono okres blokady, w którym
RecyclerView
nie pozwala na zmianę adaptera podczas obliczania układu lub przewijania. (numer 202046) - Naprawiono awarię podczas wywoływania funkcji
notifyItemChanged()
przy elemencie, który nie jest widoczny. (Numer 202136) - Rozwiązaliśmy problem, który występował, gdy usługa
RecyclerView.LayoutManager
dodaje i usuwa widok w ramach tego samego przebiegu pomiaru. (numer 193958)
- Zmiany w bibliotece mediarouter v7:
-
- Naprawiliśmy awarię, która występowała podczas wywoływania funkcji
MediaRouter.getInstance()
przy użyciu interfejsu API na poziomie 17. (numer 180654)
- Naprawiliśmy awarię, która występowała podczas wywoływania funkcji
- Zmiany w bibliotece funkcji TalkBack w wersji 17:
-
- Rozwiązaliśmy problem z atrybutem
GridLayout.onAddFocusables()
, który powodował wybór niewłaściwego elementu. - Rozwiązanie problemu ze znikaniem działań
GuidedStepFragment
po ich zwinięciu.
- Rozwiązaliśmy problem z atrybutem
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Naprawiono awarię
TabLayout
powodowaną przez pulę kart. (numer 201827) - Naprawiono błąd w
NavigationView
, który powodował wybór nieprawidłowego koloru. (Numer 201951) - Naprawiono błąd, przez który
setBackgroundTintList()
nie mógł już zmieniać koloru tła. (Numer 201873) - Rozwiązaliśmy problem, który powodował, że funkcja
AppBarLayout
nie przewijała się całkowicie z widoku podczas korzystania z elementuandroid:fitsSystemWindows = “true”
. (numer 201822) - Rozwiązaliśmy problem, który powodował, że funkcja
BottomSheetDialog
nie wyświetlała prawidłowo krótkich treści. (Numer 201793) - Rozwiązaliśmy problem, który powodował sporadyczne przenoszenie elementu
BottomSheetDialogFragment
, gdy zmieniała się treść. (Numer 202125) - Usunięto awarię linku licznika w TextInputLayout.
- Naprawiono awarię, która wystąpiła, gdy aplikacja
TextInputLayout.getCounterMaxLength()
przywróciła zapisany stan. (Problem: 202375) - Naprawiliśmy błąd
ClassCastException
występujący przy przywracaniu widokuCoordinatorLayout
przy użyciu zapisanego stanu widoku innego niżCoordinatorLayout
.
- Naprawiono awarię
- Zmiany w narzędziu VectorDrawableCompat:
-
- Naprawiliśmy błąd polegający na tym, że odczytywana była nieprawidłowa zmienna dla funkcji
android:tintMode
. (Numer 201907)
- Naprawiliśmy błąd polegający na tym, że odczytywana była nieprawidłowa zmienna dla funkcji
Wersja 23.2.0
Luty 2016 r.
- Zmiany w bibliotece pomocy technicznej wersji 4:
-
- Dodano poziom pomocy
MediaBrowserCompat
w przypadku pomocy typuMediaBrowser
iMediaBrowserServiceCompat
w ramach pomocy dla języka:MediaBrowserService
. Jest to przydatne podczas łączenia usługi w tle aplikacji multimedialnej z komponentami interfejsu oraz integracji z Androidem Auto i Android Wear bez konieczności wymagania interfejsu API na poziomie 21 lub wyższym. - System wywołuje teraz funkcję
onActivityResult()
w przypadku zagnieżdżonego taguFragmentActivity
.
- Dodano poziom pomocy
- Zmiany w bibliotece AppCompat w wersji 7:
-
- Dodaliśmy funkcję Tryb nocny do interfejsu API na poziomie 14 i wyższym. Przełączaj się między jasnym motywem materiałowym i materiałem ciemnym w zależności od pory dnia lub ustawienia specyficznego dla aplikacji.
-
- Motywy na dzień i noc znajdziesz tutaj:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
AppCompatDelegate.setDefaultNightMode()
: ustawia domyślny tryb aplikacji, przekazując jedną z tych stałych:-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
: zastępuje ustawienie trybu nocnego dla komponentu aplikacji lokalnej.AppCompatDelegate.getDefaultNightMode()
: zwraca domyślny tryb nocny.
- Motywy na dzień i noc znajdziesz tutaj:
- Zmiany w bibliotece mediarouter v7:
-
MediaRouteControllerDialog
teraz prawidłowo stosuje niestandardowe kolory motywu aplikacji.
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Dodaliśmy obsługę dolnych arkuszy. Wtyczka interakcji
BottomSheetBehavior
umożliwia widok podrzędny elementuCoordinatorLayout
pełniący rolę arkusza dolnego. Klasa podstawowaBottomSheetCallback
udostępnia wywołania zwrotne do monitorowania zdarzeń u dołu arkusza.
- Dodaliśmy obsługę dolnych arkuszy. Wtyczka interakcji
- Zmiany w bibliotece obsługi kart niestandardowych:
-
- Na kartach niestandardowych Chrome aplikacje mogą teraz oprócz dotychczasowego górnego przycisku polecenia dodać dolny pasek z przyciskami poleceń.
CustomTabsIntent.Builder.addToolBarItem()
: dodaje przycisk polecenia do karty niestandardowej. Dzięki temu możesz dodać większą liczbę przycisków.CustomTabsSession.setToolBarItem()
: aktualizuje wygląd elementów paska narzędzi. Ta metoda zadziała tylko wtedy, gdy otrzyma prawidłowy identyfikator, a sesja przeglądarki będzie działać na pierwszym planie.
- Dodano bibliotekę pomocy VectorDrawable:
-
- Dodane zajęcia:
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- Dodaje obsługę zasobów
VectorDrawable
do aplikacji z interfejsem API na poziomie 7 lub wyższym. KomponentyAnimatedVectorDrawable
są też obsługiwane przez interfejs API na poziomie 11 lub wyższym. Zasoby wektorowe mogą być znacznie mniejsze od zasobów graficznych, dlatego powinny ograniczać rozmiar aplikacji dzięki zmniejszeniu liczby zasobów wymaganych do obsługi wielu ekranów urządzeń. - Ta biblioteka stanowi teraz zależność z biblioteki AppCompat w wersji 7, która umożliwia programistom i AppCompat łatwe korzystanie z obiektów rysowalnych wektorowych. Aby użyć
VectorDrawableCompat
wImageButton
lubImageView
, użyj atrybutu XMLapp:srcCompat
lub metodysetImageResource()
. - Aby nadal odwoływać się do identyfikatorów atrybutów na poziomie interfejsu API na poziomie 20 lub niższym, dodaj do pliku
build,gradle
tę flagęappt
: -
- Jeśli tworzysz kompilację za pomocą wtyczki na Androida do Gradle w wersji 1.5.0 lub starszej, dodaj do pliku
build.gradle
te wiersze: -
android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }
- Jeśli tworzysz kompilację za pomocą wtyczki na Androida do Gradle w wersji 2.0.0 lub nowszej, dodaj do pliku
build.gradle
te wiersze: -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- Jeśli tworzysz kompilację za pomocą wtyczki na Androida do Gradle w wersji 1.5.0 lub starszej, dodaj do pliku
- Zmiany w bibliotece funkcji TalkBack w wersji 17:
-
- Dodaliśmy nowe możliwości do komponentu
GuidedStepFragment
, który prowadzi użytkowników przez proces podejmowania decyzji lub serii decyzji: -
- Dodano działania przycisku do elementu
GuidedAction
: GuidedStepFragment.setButtonActions()
: ustawia listę przyciskówGuidedAction
, które użytkownik może wybrać w widoku Działania.- Pola opisu można teraz edytować:
-
GuidedAction.Builder.descriptionEditable()
: podczas przekazywania parametrutrue
ustawiany jest opis działania, który można edytować.GuidedAction.getEditDescription()
: zwraca opis, który można edytować, jakoCharSequence
.
- Dodano listy podrzędne działań:
-
GuidedAction.setSubActions()
: ustawia listęGuidedAction
jako menu zawierające działania podrzędne.
- Dodano działania przycisku do elementu
- Dodano widżet
GuidedDatePickerAction
dla funkcjiDatePicker
: -
- Data jest wybierana za pomocą kolumn roku, miesiąca i dnia i ma możliwy do dostosowania zakres.
GuidedDatePickerAction.Builder
: klasa konstruktora obiektuGuidedDatePickerAction
.GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
: ustaw odpowiedni format daty, przekazując odpowiedni 3-znakowy elementString
, np.“YMD”
lub“MDY”
. Możesz też użyć atrybutu XMLdatePickerFormat
.
- Dodaliśmy nowe możliwości do komponentu
- Zmiany w bibliotece RecyclerView w wersji 7:
-
RecyclerView
ma teraz opcjonalną funkcję o nazwie AutoMeasure, która pozwalaRecyclerView.LayoutManager
łatwo opakować zawartość lub obsługiwać różne specyfikacje pomiarowe dostarczone przez nadrzędny obiektRecyclerView
. Obsługuje wszystkie istniejące funkcje animacjiRecyclerView
.-
- Jeśli masz niestandardowy parametr
RecyclerView.LayoutManager
, wywołajsetAutoMeasureEnabled(true)
, aby zacząć korzystać z nowego interfejsu AutoMeasure API. Wszystkie wbudowane obiektyRecyclerView.LayoutManager
domyślnie włączają automatyczny pomiar. RecyclerView.LayoutManager
nie ignoruje już niektórych ustawień elementuRecyclerView.LayoutParams
, takich jakMATCH_PARENT
w kierunku przewijania.Uwaga: te ograniczenia mogą spowodować nieoczekiwane działanie układów. Pamiętaj, aby określić poprawne parametry układu.
- Jeśli masz niestandardowy parametr
- Podczas aktualizowania obiektu
RecyclerView.ViewHolder
o informacje o ładunkuDefaultItemAnimator
wyłącza teraz animacje zmian. - Możesz teraz zmienić prędkość ucieczki obiektu
ItemTouchHelper
, by kontrolować czułość przesuwania. Aby ułatwić lub utrudnić przewijanie, zastąpgetSwipeEscapeVelocity(float defaultValue)
i zmodyfikuj elementdefaultValue
.
Wersja 23.1.1
listopadzie 2015 r.
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Rozwiązaliśmy problem powodujący awarię, która występowała, gdy użytkownik wykonał czynność przesuwania, aby zamknąć, a następnie dodał element do klasy narzędzia
ItemTouchHelper
. (numer 190500)
- Rozwiązaliśmy problem powodujący awarię, która występowała, gdy użytkownik wykonał czynność przesuwania, aby zamknąć, a następnie dodał element do klasy narzędzia
- Zmiany w bibliotece ustawień w wersji 7:
-
- Naprawiono problem z użyciem protokołu ProGuard. (Numer 183261)
- Zmiany w bibliotece obsługi funkcji TalkBack w wersji 17:
-
- Naprawiono kilka problemów wewnętrznych w tej bibliotece.
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Dodano metodę
getHeaderView
do klasyNavigationView
. - Rozwiązaliśmy problem z przezroczystym tłem obiektu
FloatingActionButton
na urządzeniach z Androidem 4.0 (poziom interfejsu API 15) lub starszym. (Numer 183315)
- Dodano metodę
Wersja 23.1.0
październiku 2015 r.
- Zmiany w bibliotece pomocy w wersji 4:
-
- Dodano obsługę interfejsu
OnScrollChangedListener
do widżetuNestedScrollView
. Umożliwia odbieranie wywołań zwrotnych w przypadku zmiany pozycji X lub Y przewijania. - Dodano klasę
MediaButtonReceiver
do przekazywania otrzymanych elementów sterujących odtwarzaniem do usługi, która zarządza klasąMediaSessionCompat
. KlasaMediaSessionCompat
ma konstruktor, który może automatycznie znaleźć w pliku manifestu odbiornik przycisku multimediów. Odbiornik przycisku multimediów to kluczowy element obsługi elementów sterujących odtwarzaniem za pomocą sprzętu lub elementów sterujących Bluetooth.
- Dodano obsługę interfejsu
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano widżety Material Design
Seekbar
iImageButton
. - Zaktualizowano widżet
ImageView
, aby obsługiwał funkcję odcienia. - Zaktualizowano wygląd i działanie widżetu
SwitchCompat
.
- Dodano widżety Material Design
- Zmiany w bibliotece mediarouter v7:
-
- Do zajęć
MediaRouteChooserDialog
dodano te funkcje: - Wyświetla stronę wczytywania podczas wyszukiwania dostawców tras multimediów.
- Zawiera ikonę typu urządzenia, która ułatwia identyfikację.
- Sortuje trasy według częstotliwości używania w bieżącej aplikacji.
- Obsługuje tryb poziomy.
- Do zajęć
MediaRouteControllerDialog
dodano te funkcje: - Rozpoznaje przesyłanie ekranu i podaje odpowiedni opis.
- Obsługuje różne rozmiary okładki i formaty obrazu oraz asynchronicznie wczytuje grafikę.
- Automatycznie wybiera kolor treści na podstawie głównego koloru aplikacji.
- Dostosowuje układ okna do miejsca dostępnego na ekranie urządzenia.
- Obsługuje tryb poziomy.
- Do zajęć
- Zmiany dotyczące biblioteki palet v7:
-
- Dodano metodę
setRegion()
, aby umożliwić wyodrębnianie koloru z określonego regionu obiektuBitmap
.
- Dodano metodę
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Dodano ulepszony interfejs API animacji do klasy
ItemAnimator
w celu łatwiejszego dostosowywania: - Animacje zmian nie wymuszają już 2 kopii obiektu
ViewHolder
, co włącza animacje zawartości elementu. Ponadto obiektItemAnimator
decyduje, czy chce użyć ponownie tego samego obiektuViewHolder
, czy utworzyć nowy. - Nowy interfejs API rekordu informacji zapewnia klasie
ItemAnimator
elastyczność, która pozwala na gromadzenie danych w odpowiednim momencie cyklu życia układu. Te informacje są później przekazywane do animowanych wywołań zwrotnych.
- Przedstawiliśmy łatwy plan przejścia na tę niezgodną wstecznie zmianę interfejsu API:
- Jeśli klasa
ItemAnimator
została wcześniej rozszerzona, możesz zmienić ją naSimpleItemAnimator
, a Twój kod powinien działać tak jak wcześniej. KlasaSimpleItemAnimator
udostępnia stary interfejs API przez pakowanie nowego interfejsu API. - Niektóre metody zostały usunięte z klasy
ItemAnimator
. Ten kod przestanie kompilować:
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
Możesz zastąpić go następującym elementem:
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- Dodano ulepszony interfejs API animacji do klasy
- Zmiany w bibliotece obsługi preferencji w wersjach 7, v14 i v17:
-
- Usunięto interfejsy API umożliwiające kontrolowanie okien
EditText
.
- Usunięto interfejsy API umożliwiające kontrolowanie okien
- Zmiany w bibliotece obsługi funkcji TalkBack w wersji 17:
-
- Dodaliśmy wersję klasy
GuidedStepFragment
dla biblioteki pomocy (rozszerza zakresandroid.support.v4.app.Fragment
) oraz ulepszone animacje i przejścia. - Zaktualizowano klasę
GuidedStepFragment
, aby można było ją umieścić na istniejącej treści. - Dodano możliwość dodawania do klasy
SearchFragment
adnotacji do różnych typów ukończeń wyszukiwania. - Dodano obsługę przesunięć slajdów w klasie
VerticalGridFragment
.
- Dodaliśmy wersję klasy
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Dodano obsługę
liczania znaków w widżecie
TextInputLayout
. - Dodano obsługę przyciągania do krawędzi do klasy
AppBarLayout
przez dodanie stałejSCROLL_FLAG_SNAP
. Jeśli po zakończeniu przewijania widok jest tylko częściowo widoczny, widok jest przyciągany i przewijany do najbliższej krawędzi. - Dodano obsługę widoków niestandardowych do klasy
NavigationView
za pomocą atrybutuapp:actionLayout
lub metodyMenuItemCompat.setActionView()
.
- Dodano obsługę
liczania znaków w widżecie
- Zmiany w bibliotece obsługi kart niestandardowych:
-
- Dodano metodę
enableUrlBarHiding()
do klasyCustomTabsIntent
. Pozwala klientowi dostosować, czy pasek adresu URL ma być automatycznie ukrywany przy przewijaniu w dół. - Dodano metodę
setActionButton()
do klasyCustomTabsSession
. Pozwala klientowi zmienić ikonę niestandardowego przycisku działania na już wprowadzonej karcie niestandardowej. - Dodano stałe
TAB_SHOWN
iTAB_HIDDEN
jako nowe zdarzenia dla metodyonNavigationEvent
klasyCustomTabsCallback
.
- Dodano metodę
Wersja 23.0.1
Wrzesień 2015 r.
- Zmiany w bibliotece obsługi preferencji v7 i v14:
-
- Dodaliśmy pliki układu i stylu Material Design. (Numer 183376)
- Zmiany w bibliotece appcompat w wersji 7:
-
- Rozwiązaliśmy problemy powodujące awarie klasy
Fragment
przez ograniczenie użycia warstw sprzętowych do Androida 4.1 (poziom interfejsu API 16) lub nowszego. (Numer 183896) - Rozwiązaliśmy problem, który powodował, że przyciski sprzętowe nie działały, gdy aktywność ustawiała klasę
Toolbar
jakoActionBar
za pomocą metodysetSupportActionBar()
. (Numer 183334) - Klasa
AppCompatDialogFragment
została zaktualizowana, dzięki czemu nie powoduje już błęduWindows feature must be requested before adding content
. (Numer 183186)
- Rozwiązaliśmy problemy powodujące awarie klasy
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Poprawiliśmy klasę
AppBarLayout
, dzięki czemu rysuje się prawidłowo po obrocie. (Numer 183109) - Poprawiliśmy klasę
TabLayout
, aby działała prawidłowo, gdy użytkownik kliknie po przesunięciu palcem. (Numer 183123)
- Poprawiliśmy klasę
- Zmiany w bibliotece obsługi kart niestandardowych:
-
- Zmniejszono wartość
minSdkVersion
z 16 do 15 na potrzeby obsługi wersji. - Dodano sposób generowania
CustomTabsSessionToken
na podstawie intencji.
- Zmniejszono wartość
Wersja 23
Sierpień 2015
- Dodano nowe biblioteki pomocy:
Pełną listę zmian wprowadzonych w Bibliotece pomocy znajdziesz w raporcie dotyczącym różnic w interfejsach API biblioteki pomocy.
Wersja 22.2.1
lipcu 2015 r.
- Zmiany w bibliotece pomocy dotyczącej projektowania:
-
- Dodano metody
hide()
ishow()
do klasyFloatingActionButton
na potrzeby automatycznego uruchamiania animacji. - Dodano stałą
LENGTH_INDEFINITE
do klasySnackbar
, która służy do wyświetlania paska powiadomień do czasu jego zamknięcia lub wyświetlenia kolejnego paska powiadomień. Dodano też metodysetActionTextColor(int)
isetActionTextColor(ColorStateList)
. - Dodano metodę
getSelectedTabPosition()
do klasyTabLayout
do pobierania aktualnie wybranej karty. - Dostarczono w pełni biegły interfejs API dla klasy
android.support.v7.app.NotificationCompat.MediaStyle
na potrzeby łańcucha metod. - Do interfejsu
RecyclerView
dodaliśmy wygodne metody umożliwiające zbiorcze wstawianie elementów.
- Dodano metody
Pełną listę zmian wprowadzonych w Bibliotece pomocy znajdziesz w raporcie dotyczącym różnic w interfejsach API biblioteki pomocy.
Wersja 22.2.0
Maj 2015 r.
- Dodaliśmy bibliotekę pomocy dotyczącej projektów:
-
- Dodano element
TextInputLayout
, aby wyświetlać podpowiedziEditText
i tekst błędu jako etykiety pływające. - Dodano obiekt
FloatingActionButton
do implementowania głównego działania w interfejsie w postaci pływającego przycisku polecenia (obsługi rozmiaru domyślnego lub mini). - Dodano element
Snackbar
, który pozwala wyświetlić uproszczoną opinię z opcjonalnym działaniem na animowanym pasku powiadomień. - Dodano
TabLayout
do implementowania stałych kart, które można przewijać, a także łatwej integracji zViewPager
. - Dodano element
NavigationView
do implementacji zawartości panelu nawigacji, w tym możliwości powiększania elementów menu za pomocą zasobu menu. - Dodano
CoordinatorLayout
– układ ogólnego przeznaczenia, który służy do budowania zależności między widokami równorzędnymi i umożliwia łatwe przewijanie reakcji między komponentami za pomocąCoordinatorLayout.Behavior
. Wiele komponentów Biblioteki projektów jest podrzędnych wobec elementuCoordinatorLayout
. - Dodano kontener
AppBarLayout
– widoku elementuToolbar
i innych widoków (np.TabLayout
) do reagowania na zdarzenia przewijania przez przewijanie ekranu, danie widoczności w reakcji na przewijanie w dół lub zwijanie/rozwijanie przed przewijaniem. - Dodano
CollapsingToolbarLayout
do kontrolowania sposobu zwijania elementuToolbar
. Pasek narzędzi może się zwijać przez: przypięcie komponentów u góry ekranu, wprowadzenie przewijania z paralaksą takich komponentów jakImageView
lub dodanie koloru siatki zawartości, gdy widok jest częściowo zwinięty.
- Dodano element
- Zmiany w bibliotece pomocy w wersji 4:
-
- Do klasy
AccessibilityEventCompat
dodano metodygetContentChangeTypes()
isetContentChangeTypes()
oraz powiązane pola typu zmiany na potrzeby obsługi zdarzeń ułatwień dostępu. - Do klasy
PlaybackStateCompat
dodano metodygetActiveQueueItemId()
,getCustomActions()
igetExtras()
z powiązanymi polami stanu, aby pobierać działania niestandardowe z kolejki. - Dodano metody
addCustomAction()
,setActiveQueueItemId()
isetExtras()
do klasyPlaybackStateCompat.Builder
, aby dodać do stanu odtwarzania działania niestandardowe. - Dodano metody
fromCustomAction()
igetCustomAction()
do klasyPlaybackStateCompat.CustomAction
umożliwiającej pobieranie działań niestandardowych z kolejki. - Do klasy
ViewCompat
dodano metodyisAttachedToWindow()
,offsetLeftAndRight()
ioffsetTopAndBottom()
na potrzeby pracy z widokami. - Do klasy
ViewPager
dodano metodyaddOnPageChangeListener()
,clearOnPageChangeListeners()
iremoveOnPageChangeListener()
do reagowania na zmiany na stronie.Wycofano metodę
ViewPager.setOnPageChangeListener()
. - Dodano metodę
notifySubtreeAccessibilityStateChanged()
do klasyViewParentCompat
, która informuje podmiot nadrzędny widoku o zmianie stanu ułatwień dostępu jednego z jego elementów podrzędnych. - Dodano metody
translationZ()
,translationZBy()
,z()
izBy()
do klasyViewPropertyAnimatorCompat
w celu dodania animacji.
- Do klasy
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano metodę
onWindowStartingSupportActionMode()
do klasAppCompatActivity
,AppCompatCallback
iAppCompatDialog
do obsługi trybów działań uruchamianych w bieżącym oknie. - Dodano metody
isHandleNativeActionModesEnabled()
isetHandleNativeActionModesEnabled()
do klasyAppCompatDelegate
do obsługi natywnych trybów działań.
- Dodano metodę
Pełną listę zmian wprowadzonych w Bibliotece pomocy znajdziesz w raporcie dotyczącym różnic w interfejsach API biblioteki pomocy.
Wersja 22.1.0
Kwiecień 2015
- Zmiany w bibliotece adnotacji:
-
- Dodaliśmy bibliotekę adnotacji, która zapewnia obsługę rozszerzonych inspekcji kodu. Adnotacje są dodawane jako tagi metadanych, które dołączasz do zmiennych, parametrów i zwracanych wartości w celu sprawdzania zwracanych wartości metod, przekazanych parametrów oraz lokalnych zmiennych i pól.
- Zmiany w bibliotece pomocy w wersji 4:
-
- Dodano klasę
ColorUtils
, aby udostępnić zestaw metod narzędziowych związanych z kolorami. - Dodano metody
unwrap()
iwrap()
do klasyDrawableCompat
, aby umożliwić używaniesetTint()
,setTintList()
isetTintMode()
na wszystkich urządzeniach z interfejsem API poziomu 4 lub wyższym. - Dodano klasę
TraceCompat
do zapisywania zdarzeń logu czasu w systemowym buforze śledzenia, które można następnie zbierać i wizualizować za pomocą narzędzia Systrace. - Dodano klasę
CircularIntArray
do tworzenia struktur danych w postaci okrągłych liczb całkowitych. - Dodano metody
clear()
,removeFromStart()
iremoveFromEnd()
do klasyCircularArray
. Zmieniono też dotychczasowe metody w tej klasie na nieostateczne. - Dodano
InputDeviceCompat
jako klasę pomocniczą umożliwiającą dostęp do danych w klasieInputDeviceCompat
. - Dodano klasę
LayoutInflaterCompat
jako klasę pomocniczą umożliwiającą dostęp do danych w klasieLayoutInflaterCompat
i dodano interfejsLayoutInflaterFactory
. - Dodano klasy, metody i interfejsy do obsługi zagnieżdżonego przewijania.
- Dodano klasy pomocnicze
NestedScrollingChildHelper
iNestedScrollingParentHelper
do implementowania zagnieżdżonych widoków nadrzędnych i podrzędnych. - Dodano interfejs
NestedScrollingChild
, który ma zostać wdrożony przezView
podklas. - Dodano interfejsy
NestedScrollingParent
iScrollingView
, aby obsługiwać operacje przewijania i udostępniać interfejsy API związane z przewijaniem. - Dodano metodę
getNestedScrollAxes()
do klasyViewGroupCompat
. - Dodano metody do klasy
ViewParentCompat
umożliwiające obsługę zagnieżdżonego przewijania. - Dodano klasę
NestedScrollView
do obsługi zagnieżdżonego przewijania nadrzędnego i podrzędnego w nowych i starszych wersjach Androida.
- Dodano klasy pomocnicze
- Do klasy
MotionEventCompat
dodano metody i stałe służące do pobierania wartości osi i źródła zdarzeń. - Zaktualizowaliśmy klasę
AccessibilityNodeInfoCompat
, aby dodać metody błędów, unieważniania treści i etykiet. - Dodano te klasy interpolacji do animacji:
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
iPathInterpolatorCompat
. - Dodano klasę
Space
, aby utworzyć luki między komponentami w układach ogólnego przeznaczenia. Ta klasa została wycofana z biblioteki układu siatki. - Dodano klasę
TextViewCompat
umożliwiającą dostęp do funkcji wTextView
. - Dodano parametr przesunięcia do metody
onPull()
w klasieEdgeEffectCompat
.
- Dodano klasę
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano obsługę odcienia w widżetach appcompat, w tym
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
iAppCompatTextView
. - Zaktualizowano
AppCompatActivity
jako klasę podstawową na potrzeby działań korzystających z funkcji paska działań biblioteki pomocy. Ta klasa zastępuje wycofaną klasęActionBarActivity
. - Dodaliśmy interfejs
AppCompatCallback
, który został wdrożony dla usługi AppCompat, aby umożliwić wykonywanie wywołań zwrotnych. - Dodano klasę abstrakcyjną
AppCompatDelegate
jako przedstawiciela, który umożliwia rozszerzenie obsługi AppCompat w dowolne działanie. - Dodano klasę
AppCompatDialog
jako klasę bazową okien dialogowych z motywem AppCompat. - Dodano klasy wskaźnika postępu
AlertDialog
iAlertDialog.Builder
, aby utworzyćAlertDialog
z motywem AppCompat. - Dodano klasę
Palette.Builder
do generowania instancjiPalette
.- Dodano metodę
from(Bitmap)
do klasyPalette
, aby rozpocząć generowanie palety ze zwróconą instancjąPalette.Builder
. - Wycofano metody
Palette.generate()
iPalette.generateAsync()
.
- Dodano metodę
- Dodano metodę
getAbsoluteAlignment()
do klasyGridLayout.Spec
. - Wycofano użycie atrybutu
app:theme
do określania stylu styluToolbar
. Teraz możesz używaćandroid:theme
w przypadku pasków narzędzi na wszystkich urządzeniach z interfejsem API na poziomie 7 i wyższych oraz obsługiandroid:theme
w przypadku wszystkich widżetów na urządzeniach z interfejsem API na poziomie 11 i wyższym.
- Dodano obsługę odcienia w widżetach appcompat, w tym
- Zmiany w bibliotece Leanback w wersji 17:
-
- Dodano
GuidedStepFragment
,GuidanceStylist
iGuidedActionsStylist
, aby umożliwić tworzenie wieloetapowych przepływów decyzyjnych.
- Dodano
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Dodano klasy (
SortedList
), aby wyświetlać elementy w kolejności na liście i informować o zmianach na liście. - Dodano klasę
SortedListAdapterCallback
, która może powiązać posortowaną listę z klasąRecyclerView.Adapter
.
- Dodano klasy (
- Zmiany w bibliotece renderScriptu w wersji 8:
-
- Dodano klasę
ScriptIntrinsicHistogram
, która służy jako filtr histogramu. - Dodano klasę
ScriptIntrinsicResize
do zmiany rozmiaru alokacji 2D.
- Dodano klasę
- Zmiany w bibliotece pomocy w wersji 4:
-
- Zaktualizowaliśmy metodę
getDrawable()
, aby zwracała rysowalny obiekt w przypadku określonego identyfikatora zasobu, gęstości ekranu i motywu. - Dodano metodę
setImportantForAccessibility()
, która pozwala wskazać, czy widok ma uruchamiać zdarzenia ułatwień dostępu. - Dodano metodę
getStatusBarBackgroundDrawable()
, która umożliwia dodanie tła paska stanu do rysowania. - Dodano metody do klasy
NotificationCompat.CarExtender.UnreadConversation
, aby aplikacje do obsługi wiadomości w Androidzie Auto mogły pobierać dodatkowe dane dotyczące powiadomień. - Dodano metodę
getProgressCircleDiameter()
zwracającą średnicę układu okręgu. - Zmieniono domyślny kolor paska stanu
DrawerLayout
nacolorPrimaryDark
.
- Zaktualizowaliśmy metodę
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano styl wskaźnika postępu
Base_Widget_AppCompat_Spinner_Underlined
. - Dodano style w kolorach widżetów:
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
iBase_Widget_AppCompat_RatingBar
.
- Dodano styl wskaźnika postępu
- Zmiany w bibliotece Leanback w wersji 17:
-
- Dodano metody
getRecycledPoolSize()
isetRecycledPoolSize()
, aby umożliwić użytkownikom niestandardowe rozmiary basenów pochodzących z recyklingu. - Dodano atrybut
WRAP_CONTENT
do ustawienia szerokości układu, aby umożliwić obsługę opakowanej treści ikon tytułu. - Zdefiniowano
R.transition
w pliku XML w celu ulepszenia aktualizacji związanych z przenoszeniem. - Włączono obsługę układów od prawej do lewej.
- Dodano obsługę kluczowych zdarzeń odtwarzania i wstrzymywania do klasy
PlaybackOverlayFragment
. - Dodano przejścia wejścia i powrotu do klasy
BrowseFragment
i klasyDetailsFragment
. - Dodano metodę
replace()
, aby zastępować elementy w tablicy adaptera obiektu.
- Dodano metody
- Zmiany w bibliotece mediarouter v7:
-
- Zaktualizowano ikony Google Cast, aby były zgodne ze stylem Material Design.
- Zaktualizowano wszystkie ikony używane w oknach
MediaRouter
, aby używały stylu Material Design.
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Dodano metody
getlayoutPosition()
igetadapterPosition()
do klasyRecyclerView
. - Wycofano metody
classgetChildPosition()
ifindViewHolderForPosition()
w klasieRecyclerView
. - Wycofano metodę
getPosition()
w klasieRecyclerView.ViewHolder
. - Wycofano metodę
getViewPosition()
w klasieRecyclerView.LayoutParams
.
- Dodano metody
- Zmiany w bibliotece pomocy w wersji 4:
-
- Dodaliśmy kilka metod
NotificationCompat.WearableExtender
, aby poprawić wyświetlanie kodów kreskowych w powiadomieniach na urządzeniach do noszenia.
- Dodaliśmy kilka metod
- Zmiany w bibliotece pomocy w wersji 4:
-
- Dodano klasę
NotificationCompat.CarExtender
w celu obsługi rozszerzeń Android Auto do powiadomień.
- Dodano klasę
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodano konstruktor
PopupMenu
do obsługi nowych wyskakujących menu. - Dodano obsługę opisu ikony zwijania w klasie
Toolbar
. - Zaktualizowano widżet
SearchView
, aby umożliwić wyświetlanie interfejsucommitIcon
. - Usunięto atrybut
buttonGravity
z klasyToolbar
.
- Dodano konstruktor
- Zmiany w bibliotece widoku kart v7:
-
- Dodano interfejs
setCardBackgroundColor(ColorStateList)
API, aby umożliwić zmianę koloru tła elementuCardView
. - Zmieniono element
CardView
, aby dokładniej przekazywał wartość nieprzezroczystości jakoTRANSLUCENT
.
- Dodano interfejs
- Zmiany w bibliotece Recyclerview w wersji 7:
-
- Dodano stałe
TOUCH_SLOP_DEFAULT
iTOUCH_SLOP_PAGING
do klasyRecyclerView
, aby umożliwić obsługę konfiguracji sterowania dotykowego na potrzeby stronicowania.
- Dodano stałe
- Zmiany w bibliotece Leanback w wersji 17:
-
- Dodaliśmy obsługę generowania fragmentów kodu w wersji 4.
- Zmieniono dodatkowy kolor tekstu w dokumencie
CardView
.
- Dodano bibliotekę obsługi multidex, aby umożliwić obsługę wielu plików wykonywalnych Dalvik (DEX) w celu obsługi plików w formacie wielu plików Dex w wersji wcześniejszej niż Android 5.0.
- Zmiany w bibliotece pomocy w wersji 4:
-
- Dodaliśmy obsługę przejścia na
Fragment
na urządzeniach z Androidem 5.0 (poziom API 21). Pamiętaj, że przejścia nie mają wpływu na urządzenia z Androidem 4.4 lub starszym. - Dodano element
DocumentFile
, aby ułatwić przejście zFile
podczas pracy z drzewami dokumentów. Ta klasa wymaga jednak większych nakładów na przetwarzanie niż interfejs APIDocumentsContract
dodany na platformie w Androidzie 4.4 (poziom API 19). Dlatego jeśli masz Androida w wersji 4.4 lub nowszej, zalecamy przejście naDocumentsContract
.
- Dodaliśmy obsługę przejścia na
- Zmiany w bibliotece appcompat w wersji 7:
-
- Dodaliśmy obsługę interfejsów użytkownika Material Design.
- Dodano element
Toolbar
, który uogólnia funkcjonalnośćActionBar
w układach aplikacji. - Zaktualizowano element
ActionBarDrawerToggle
, który zawiera animację opartą na menu. - Zaktualizowano często używane widżety interfejsu, aby umożliwić kolorowanie za pomocą atrybutów motywu w przypadku aplikacji działających na urządzeniach z systemem starszym niż Android 5.0.
- Dodano
SwitchCompat
– wsteczny widżet widżetuSwitch
, który został dodany w Androidzie 4.0 (poziom interfejsu API 14).
- Nowa biblioteka widoku kart v7:
-
- Dodano widżet
CardView
, który zapewnia implementację zgodną z interfejsem Material Design do wyświetlania elementów danych.
- Dodano widżet
- Nowa biblioteka recyclerview w wersji 7:
-
- Dodano widżet
RecyclerView
, który zapewnia elastyczny widok listy zapewniający ograniczone okno na duży zbiór danych.
- Dodano widżet
- Nowa biblioteka palet V7:
-
- Dodano klasę
Palette
, która umożliwia wyodrębnianie wyraźnych kolorów z obrazu.
- Dodano klasę
- Nowa biblioteka leanback w wersji 17:
-
- Dodano obsługę tworzenia interfejsów użytkownika telewizora, takich jak
BrowseFragment
,DetailsFragment
iPlaybackOverlayFragment
. Więcej informacji na temat korzystania z widżetów interfejsu znajdziesz w artykule o tworzeniu aplikacji do odtwarzania filmów na telewizorze.
- Dodano obsługę tworzenia interfejsów użytkownika telewizora, takich jak
- Zmiany w bibliotece obsługi wersji 4:
-
- W
NotificationCompat.WearableExtender
dodaliśmy rozszerzoną obsługę powiadomień z Androida Wear, co pozwala Ci określić w powiadomieniach funkcje przeznaczone do noszenia. - Dodano element
NotificationCompat.Action.WearableExtender
, który umożliwia dodawanie działań do powiadomień na urządzeniu do noszenia. - Dodano
NotificationManagerCompat
, który umożliwia wysyłanie powiadomień, które prawidłowo obsługują funkcje urządzeń do noszenia. - Dodano funkcję
RemoteInput
, która umożliwia urządzeniu mobilnym odbieranie poleceń głosowych z powiadomienia wyświetlanego na urządzeniu do noszenia. - Ulepszyliśmy obsługę potwierdzeń dotykowych w
SwipeRefreshLayout
.
- W
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano klasę
SwipeRefreshLayout
, która umożliwia użytkownikom odświeżanie zawartości widoku gestem przesuwania w pionie. - Rozwiązaliśmy problemy z ułatwieniami dostępu w szufladach nawigacji.
- Dodano klasę
- Zmiany w bibliotece appcompat w wersji 7:
-
- Naprawiono problemy z tłem związane z paskiem działań.
- Zmiany w bibliotece obsługi wersji 4:
-
- Ulepszyliśmy działanie funkcji
PrintHelper
, dodając asynchroniczną obsługę drukowania. - Naprawiliśmy przybliżenie klasy
DrawerLayout
metodyaddChildrenForAccessibility()
. - Naprawiono rysowalne odbicie lustrzane slajdów w
ActionBarDrawerToggle
. - Naprawiony problem pojedynczego elementu występującego podczas usuwania elementu z iteratora kolekcji.
- Ulepszyliśmy działanie funkcji
- Zmiany w bibliotece mediarouter v7:
-
- Poprawiono rozpoznawanie trasy dzięki użyciu pełnej nazwy komponentu w
MediaRouteProvider.ProviderMetadata
. - Zaktualizowano
MediaRouteChooserDialog
, aby ukryć wyłączone trasy.
- Poprawiono rozpoznawanie trasy dzięki użyciu pełnej nazwy komponentu w
- Zmiany w bibliotece renderScriptu w wersji 8
-
- Dodaliśmy propagację błędów w warstwie thunkingu RenderScript.
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano obsługę zewnętrznych interfejsów API pamięci masowej za pomocą
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
igetStorageState()
. Te metody pomocnicze zawsze zwracają jeden obiekt pliku na urządzeniach z Androidem 4.3 (poziom interfejsu API 18) lub starszym. W Androidzie 4.4 (poziom interfejsu API 19) lub nowszym te metody mogą zwracać więcej niż 1 obiekt pliku. - Dodano klasę
PrintHelper
, która współpracuje z interfejsami Print API w celu drukowania obrazów przy użyciu minimalnej ilości kodu. - Dodaliśmy obsługę menu typu „przeciągnij, aby otworzyć”. Więcej informacji znajdziesz w sekcjach
PopupMenuCompat
iListPopupWindowCompat
. - Ulepszona obsługa ułatwień dostępu dzięki dodaniu metody
findFocus()
wAccessibilityNodeProviderCompat
igetLiveRegion()
wAccessibilityNodeInfoCompat
. - Dodano klasę pomocniczą
ScaleGestureDetectorCompat
do uzyskiwania dostępu do nowych metod skalowania gestów. - Rozwiązaliśmy problem z tekstem
ActionBarDrawerToggle
w wyświetlanych językach pisanych od prawej do lewej. - Zmodyfikowano opcję
AutoScrollHelper
, aby uwzględniać zdarzenia dotknięcia lub umożliwiać ich przekazywanie do innych widoków.
- Dodano obsługę zewnętrznych interfejsów API pamięci masowej za pomocą
- Zmiany w bibliotece mediarouter v7:
-
- Dodaliśmy obsługę kolejkowania odtwarzania multimediów, ustawianie wartości nagłówków HTTP i czasu trwania odtwarzania multimediów.
- Dodano bezpośrednie działania sesji rozpoczęcia, pobierania i zakończenia sesji do jawnego zarządzania sesjami odtwarzania multimediów za pomocą routera multimediów.
- Zmiany w bibliotece obsługi wersji 4:
-
- Interfejs
- Dodano
BidiFormatter
do obsługi ciągów tekstowych łączących tekst w formacie od prawej do lewej oraz od lewej do prawej. - Zmodyfikowano element
ViewPager
, aby lepiej obsługiwać przypadki, w których szerokość pager podczas wstępnego przetwarzania układu wynosi 0. - Zmodyfikowano
DrawerLayout
iSlidingPaneLayout
, aby nie powodowały zgłaszania wyjątków do pomiarów podczas edytowania kodu projektu.
- Dodano
- Ułatwienia dostępu
- Dodano element
ExploreByTouchHelper
, aby uprościć wdrażanie ułatwień dostępu w widokach niestandardowych. - Rozwiązaliśmy problem z nieprawidłowo wypełnionym
TYPE_VIEW_SCROLLED
zdarzenia ułatwień dostępu przezViewPager
. - Naprawiliśmy wyjątek wskaźnika o wartości null w
ViewPager
podczas wypełniania zdarzenia ułatwień dostępu. - Uproszczono
AccessibilityNodeInfoCompat
, zmieniając dane wejścioweCharSequence
na obiektyString
. - Wycofano konstruktor
AccessibilityRecordCompat
, który jako danych wejściowych używałObject
.
- Dodano element
- Multimedia
- Dodano klasę pomocniczą
TransportMediator
do zarządzania opcjami transportu multimediów, takimi jak odtwarzanie, wstrzymywanie, pomijanie i inne działania związane z multimediami. - Na co najmniej 1 wyświetlaczu urządzenia dodano funkcję
DisplayManagerCompat
do zarządzania wynikami displayowymi.
- Dodano klasę pomocniczą
- Inne zmiany
- Dodano klasę pomocniczą
WakefulBroadcastReceiver
do implementowania wspólnego wzorca wykrywania zdarzenia wybudzania urządzenia i przekazywania zadań do interfejsuService
, zapewniając jednocześnie, że urządzenie nie przejdzie w tryb uśpienia przed zakończeniem przekazywania. - Do interfejsu
AsyncTaskLoader
dodano 2 nowe interfejsy API:commitContentChanged()
irollbackContentChanged()
, które ułatwiają radzenie sobie z aktualizacjami w tle związanymi ze zmianami w danych, które są następnie anulowane.
- Dodano klasę pomocniczą
- Interfejs
- Nowa biblioteka appcompat w wersji 7:
-
- Dodaliśmy
ActionBar
, aby umożliwić implementację wzorca wyglądu interfejsu paska działań na Androidzie 2.1 (poziom API 7) lub nowszym. Użycie tej klasy wymaga implementacji aktywności przez rozszerzenie nowej klasyActionBarActivity
.
- Dodaliśmy
- Nowa biblioteka mediarouter v7:
-
Dodaliśmy nową bibliotekę mediarouter, która zapewnia obsługę przedpremierowej wersji Google Cast dla programistów. Interfejsy API biblioteki mediarouter w wersji 7 zapewniają sposób kontrolowania routingu kanałów multimedialnych i strumieni z bieżącego urządzenia do zewnętrznych ekranów, głośników i innych urządzeń docelowych – są zgodne z Androidem 2.1 (poziom interfejsu API 7). Więcej informacji znajdziesz w sekcji Biblioteka mediarouter V7.
Interfejsy API biblioteki mediarouter w wersji 7 wprowadzone w bibliotece pomocy r18 mogą ulec zmianie w kolejnych wersjach tej biblioteki. Obecnie zalecamy korzystanie z biblioteki tylko w połączeniu z wersją przedpremierową dla programistów Google Cast.
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano obiekt
DrawerLayout
do tworzenia panelu nawigacji, który można wyciągnąć z krawędzi okna. - Dodano widżet
SlidingPaneLayout
do tworzenia połączonych widoków podsumowania i szczegółów, które dostosowują się odpowiednio do różnych rozmiarów ekranu. - Dodano
ActionBarDrawerToggle
, aby powiązać funkcjeDrawerLayout
iActionBar
. - Dodano
ViewDragHelper
jako nowy wspólny komponent do przeciągania widoków w widoku nadrzędnym. - Dodano
ScrollerCompat
, aby zapewnić zgodność ze standardamiScroller
iOverScroller
. - Dodano
FileProvider
, aby umożliwić udostępnianie prywatnych plików między aplikacjami. - Zaktualizowano
ViewPager
, aby zgłaszał wyjątek, jeśli powiązana klasaPagerAdapter
została zmodyfikowana bez wywołania funkcjinotifyDataSetChanged()
. - Rozwiązaliśmy problem z kolejnością sortowania elementów podrzędnych w
ViewPager
. - Poprawiliśmy
GestureDetectorCompat
, aby wysyłać brakujące wywołaniaonSingleTapConfirmed(MotionEvent)
między limitem czasu kliknięcia a zdarzeniami długiego naciśnięcia.
- Dodano obiekt
- Nowa biblioteka układu siatki w wersji 7:
-
- Dodano
GridLayout
, aby zapewnić obsługę obiektu układuGridLayout
. - Dodano
android.support.v7.widget.Space
, którego można używać do tworzenia pustych obszarów w obiekcie układuGridLayout
.
- Dodano
- Zmiany w bibliotece obsługi wersji 4:
-
- Poprawiony sposób interakcji z urządzeniem
ViewPager
. - Naprawiono błąd, który mógł powodować, że
ViewPager
wybierał niewłaściwą stronę. - Naprawiono używanie metody
removeView()
podczas układu dla elementuViewPager
. - Rozwiązanie problemu z działaniem
SearchViewCompat
, który powodował, że zamknięcie wyszukiwania za pomocą przycisku Wstecz nie powoduje usunięcia wyszukiwanego tekstu. Ta poprawka dotyczy tylko interfejsu API hosta na poziomie 14 i wyższych.
- Poprawiony sposób interakcji z urządzeniem
- Zmiany w bibliotece obsługi wersji 4:
-
- Interfejs
- Dodaliśmy obsługę zagnieżdżonych klas
Fragment
. - Dodano ulepszenia w debugowaniu funkcji
FragmentManager
. - Rozwiązaliśmy problem w
FragmentTabHost
, który powodował, że interakcje fragmentów i kart mogły powodować utratę stanuListView
. - Rozwiązaliśmy problem z widoczną dla użytkownika podpowiedzią w usłudze
FragmentStatePagerAdapter
. - Do interfejsu
ViewPager
dodano interfejsPageTransformer
, aby umożliwić aplikacjom zachowanie niestandardowego przejścia podczas przewijania. - Dodaliśmy nowe funkcje i poprawki do aplikacji
TaskStackBuilder
w stosunku do obecnej wersji. - Naprawiliśmy
PagerTitleStrip
, aby prawidłowo śledzić obecnie używany obiektPagerAdapter
. - Rozwiązaliśmy problemy z migotaniem, pozycjonowaniem i przycinaniem tekstu wyświetlacza w funkcji
PagerTitleStrip
. - Poprawiliśmy element
PagerTabStrip
, aby prawidłowo respektować dopełnienie podczas rysowania.
- Dodaliśmy obsługę zagnieżdżonych klas
- Ułatwienia dostępu
- Dodaliśmy obsługę nowych typów zdarzeń związanych z gestami ułatwień dostępu i dotknięciem w usłudze
AccessibilityEventCompat
. - Dodano obsługę nowych interfejsów API ułatwień dostępu w
ViewCompat
. - Dodano obsługę metody
performAccessibilityAction()
w:ViewCompat
.
- Dodaliśmy obsługę nowych typów zdarzeń związanych z gestami ułatwień dostępu i dotknięciem w usłudze
- Dodano obsługę gestów w
GestureDetectorCompat
. - Dodano obsługę wykonywania niepodzielnych operacji na plikach z użyciem nowej klasy
AtomicFile
. - Dodano obsługę pełnego zestawu metod
make
w:IntentCompat
. - Dodano metodę
trimToSize()
w klasie narzędziaLruCache
. - Zaktualizowano
ConnectivityManagerCompat
, aby uzyskać dostęp do NetworkInfo z transmisjiCONNECTIVITY_ACTION
.
- Interfejs
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodaliśmy obsługę funkcji powiadomień wprowadzonych w Androidzie 4.1 (poziom interfejsu API 16) i dodanymi do interfejsu
NotificationCompat
.
- Dodaliśmy obsługę funkcji powiadomień wprowadzonych w Androidzie 4.1 (poziom interfejsu API 16) i dodanymi do interfejsu
- Zmiany w bibliotece obsługi wersji 4:
-
- Obsługa interfejsu użytkownika
- Dodaliśmy obsługę
PagerTabStrip
, udostępniając dodatkowe funkcje pozaPagerTitleStrip
. - Poprawiliśmy różne błędy w
PagerTitleStrip
iPagerTabStrip
, w tym opcjęsetAllCaps
, wyrównanie tytułu, ulepszenie wyglądu, ograniczenia minimalnej szerokości i problemy z nawigacją dotykową. - Dodaliśmy obsługę rynien strony
ViewPager
, która ułatwia klasieViewPager
obsługę stronicowania treści z dużym zakresem przewijania w poziomie, takim jak mapa. - Naprawiliśmy liczne błędy w
ViewPager
, w tym problemy ze zmianą rozmiaru i zbioru danych, pozycjonowanie strony, interakcję użytkownika, śledzenie przewijania i nawigację z użyciem klawiatury. - Poprawiliśmy wiele błędów w
Fragment
, w tym prawidłową obsługę obiektuonActivityResult()
, gdy fragment docelowy już nie istnieje, wysyłanie zdarzeń wyboru do niewidocznych fragmentów, poprawione działanieFragmentTransaction.replace()
i lepszą obsługę stanu w przypadku fragmentów usuwanych z widoku. - Dodano obsługę metody
postOnAnimation()
w:ViewCompat
. - Zaktualizowano
NavUtils
, aby korzystać z Androida 4.1 (poziom interfejsu API 16). W górę, jeśli jest dostępna.
- Dodaliśmy obsługę
- Ułatwienia dostępu
- Zaktualizowaliśmy klasy pomocy ułatwień dostępu, w tym
AccessibilityNodeInfoCompat
, aby dodać poprawki do Androida 4.1 (poziom interfejsu API 16). - W usłudze
ViewPager
dodaliśmy obsługę przewijania w ramach ułatwień dostępu.
- Zaktualizowaliśmy klasy pomocy ułatwień dostępu, w tym
- Ogólne ulepszenia.
- Zaktualizowano
TaskStackBuilder
, aby uwzględniał zmiany w interfejsach API w Androidzie 4.1 (poziom API 16). - Ulepszono
TaskStackBuilder
, aby umożliwić korzystanie z niej w Usłudze. - Dodano obsługę języka
EXTRA_HTML_TEXT
wShareCompat
. - Zaktualizowano
NotificationCompat.Builder
, aby obsługiwał metodęsetNumber()
. - W
ConnectivityManagerCompat
dodaliśmy obsługę metodyisActiveNetworkMetered()
.
- Zaktualizowano
- Obsługa interfejsu użytkownika
- Zmiany w bibliotece obsługi wersji 4:
-
- Naprawiono flagi intencji dla obiektów
PendingIntent
generowanych przezTaskStackBuilder
. - Usunięto nieużywane atrybuty z projektów biblioteki siatki układów, aby upewnić się, że bibliotekę można utworzyć za pomocą interfejsu API na poziomie 7 lub wyższym.
- Dodano pliki
.classpath
i.project
do projektu biblioteki układu siatki.
- Naprawiono flagi intencji dla obiektów
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano
ShareCompat
, który udostępnia klasy pomocnicze do wysyłania i odbierania treści do aplikacji udostępnianych w mediach społecznościowych, w tym nowych metadanych do przypisywania udostępnionych danych do aplikacji źródłowej. Ta klasa zapewnia też zgodną integrację z nowym interfejsemShareActionProvider
w Androidzie 4.0. - Dodaliśmy
NavUtils
iTaskStackBuilder
, aby ułatwić wdrażanie wskazówek dotyczących projektowania Androida w przypadku nawigacji. Dodatkowe funkcje to między innymi zaimplementowanie przycisku w górę na pasku działań w różnych wersjach. Przykład implementacji tego wzorca znajdziesz w przykładzie App Nawigacji w: (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
). - Dodaliśmy
NotificationCompat.Builder
, aby zapewnić implementację zgodności klasy pomocniczejNotification.Builder
w Androidzie 3.0 do tworzenia ustandaryzowanych powiadomień systemowych.
- Dodano
- Zmiany w bibliotece obsługi wersji 4:
-
- Zmiany w narzędziu ViewPager:
- Dodano dodatkowy widok dekoracyjny dla elementu
ViewPager
. Widoki dekoracyjne mogą być dostarczane jako widoki podrzędne strony pagera w układzie XML. - Dodano element
PagerAdapter.getPageTitle()
, aby określić ciągi tytułów stron. Domyślnie nie mają tytułu żadnej strony. - Dodano nieinteraktywny pasek tytułu
PagerTitleStrip
, który można dodać jako element podrzędny elementu ViewPager. Deweloperzy mogą podać wygląd i kolor tekstu, a także informacje o rozmiarze układu i grawitacji. - Zaktualizowano metody
PagerAdapter
, aby przejmowały obiekty ViewGroup, a nie widok, aby uniknąć przesyłania klas w implementacjach adaptera. - Zaktualizowano
ViewPager
, aby umożliwić przesuwanie w stylu Launchera. - Poprawki błędów związanych z interakcjami z interfejsem i automatyzacją testów.
- Dodano dodatkowy widok dekoracyjny dla elementu
- Obsługa fragmentów:
- Zmieniono metodę
setStartDeferred()
nasetUserVisibleHint(boolean)
. - Dodano opóźniony początek w przypadku stron spoza ekranu, aby poprawić wydajność.
- Zmieniono metodę
- Obsługa interfejsów Accessibility API:
- Zaktualizowano metody
AccessibilityDelegateCompat
, aby zwracały puste listy zamiast wartości null. - Dodano nowe interfejsy API potrzebne w przykładach do wersji 4.
- Zaktualizowano metody
- Zmiany w narzędziu ViewPager:
- Zmiany w bibliotece obsługi wersji 4:
-
- Obsługa interfejsów Accessibility API:
- Dodano typ
AccessibilityDelegateCompat
, aby umożliwić obsługęView.AccessibilityDelegate
. - Dodano typ
AccessibilityEventCompat
, aby umożliwić obsługęAccessibilityEvent
. - Dodano typ
AccessibilityManagerCompat
, aby umożliwić obsługęAccessibilityManager
. - Dodano typ
AccessibilityNodeInfoCompat
, aby umożliwić obsługęAccessibilityNodeInfo
. - Dodano typ
AccessibilityRecordCompat
, aby umożliwić obsługęAccessibilityRecord
. - Dodano typ
AccessibilityServiceInfoCompat
, aby umożliwić obsługęAccessibilityServiceInfo
. - Dodano język
ViewGroupCompat
, aby umożliwić obsługę ułatwień dostępu w aplikacjiViewGroup
. - Zmodyfikowano
ViewCompat
, aby zapewnić obsługę ułatwień dostępu w aplikacjiView
.
- Dodano typ
- Zmiany w narzędziu ViewPager:
- Dodano obsługę marginesów między stronami.
Do wypełnienia marginesów możesz podać opcjonalny element
Drawable
. - Dodano obsługę języka
EdgeEffect
. - Dodano obsługę nawigacji za pomocą klawiatury.
- Dodaliśmy obsługę kontrolowania liczby stron przechowywanych po obu stronach bieżącej strony.
- Ulepszona fizyka dotyku.
- Poprawki błędów związane z działaniem interfejsu użytkownika.
- Dodano obsługę marginesów między stronami.
Do wypełnienia marginesów możesz podać opcjonalny element
- Obsługa interfejsów Accessibility API:
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano typ
EdgeEffectCompat
, aby umożliwić obsługęEdgeEffect
. - Dodano
LocalBroadcastManager
, aby umożliwić aplikacjom łatwą rejestrację i odbieranie intencji w ramach jednej aplikacji bez ich globalnej dystrybucji. - W
ViewCompat
dodano obsługę sprawdzania i ustawiania trybów dalekiego przewijania w przypadku elementów typuView
w Androidzie 2.3 i nowszych. - Zmiany w interfejsach API Fragment:
- Dodaliśmy nowe interfejsy API, które pozwalają kontrolować widoczność nowych menu.
- Dodano interfejsy API animacji niestandardowych.
- W
FragmentActivity
dodano interfejsy API, które umożliwiają przechowywanie niestandardowych danych instancji niezwiązanych z konfiguracją. - Naprawiono różne błędy.
- Naprawiliśmy błąd
Loader
, który powodował problemy z anulowaniem poleceńAsyncTask
w przypadku działania w Froyo i starszych wersjach platformy. Kod pomocy używa teraz własnej wersjiAsyncTask
, aby zachowywać to samo działanie na wszystkich wersjach platformy.
- Dodano typ
- Zmiany w bibliotece obsługi wersji 4:
-
- Dodano obsługę języka
Fragment.SavedState
- Dodaje interfejs
MotionEventCompat
, aby obsługiwać nowsze interfejsy APIMotionEvent
- Dodaje interfejs
VelocityTrackerCompat
, aby obsługiwać nowsze interfejsy APIVelocityTracker
- Dodaje interfejs
ViewConfigurationCompat
, aby obsługiwać nowsze interfejsy APIViewConfiguration
- Wszystkie nowe interfejsy API (dostępne tylko w bibliotece pomocy), które umożliwiają tworzenie interfejsów z stronicowaniem w poziomie, umożliwiając użytkownikom przesuwanie palcem w lewo i w prawo między widokami treści. Służą do tego takie klasy:
ViewPager
: elementViewGroup
zarządzający układem widoków podrzędnych, które użytkownik może przesuwać.PagerAdapter
: adapter, który umieszcza w elemencieViewPager
widoki danych reprezentujące każdą stronę.FragmentPagerAdapter
: rozszerzenie bibliotekiPagerAdapter
do przechodzenia między fragmentami.FragmentStatePagerAdapter
: rozszerzenie bibliotekiPagerAdapter
do przechodzenia między fragmentami, które korzysta z obsługiFragment.SavedState
w bibliotece.
- Dodano obsługę języka
- Nowa biblioteka pomocy dla wersji 13:
-
- Obejmuje
FragmentPagerAdapter
iFragmentStatePagerAdapter
, aby umożliwić obsługę stronicowania w poziomie.Są one dokładnie takie same jak interfejsy API dodane do biblioteki obsługi klienta wersji 4, ale bazują na innych komponentach platformy w Androidzie 3.2. Jeśli tworzysz aplikacje na Androida w wersji 3.2 lub nowszej, zamiast wersji 4 użyj tej biblioteki (pozostałe interfejsy API w bibliotece wersji 4 są już dostępne z interfejsem API na poziomie 13).
- Obejmuje
- Zmiany w bibliotece w wersji 4:
-
- Obsługa animacji fragmentów
- Napraw błąd
Fragment.onActivityResult()
Wersja 22
Marzec 2015 r.
Wersja 21.0.3
Grudzień 2014
Wersja 21.0.2
listopadzie 2014 r.
Wersja 21.0.1
listopadzie 2014 r.
Wersja 21
Październik 2014
Wersja 20
Lipiec 2014
Wersja 19.1.0
Marzec 2014
Wersja 19.0.1
Grudzień 2013
Wersja 19
Październik 2013
Wersja 18
Lipiec 2013
Wersja 13
Maj 2013 r.
Wersja 12
Luty 2013
Wersja 11
Listopad 2012
Wersja 10
Sierpień 2012
Wersja 9
Czerwiec 2012
Wersja 8
Kwiecień 2012
Wersja 7
Marzec 2012 r.
Wersja 6
Grudzień 2011
Uwaga: źródła informacji o interfejsach API bibliotek pomocniczych są teraz dostępne wraz z odwołaniami do platformy, np. android.support.v4.app
.
Wersja 5
Grudzień 2011
Wersja 4
Październik 2011
Wersja 3
Lipiec 2011
Wersja 2
Maj 2011
Wersja 1
Marzec 2011 r.
Pierwsze wydanie z biblioteką w wersji 4.