Archiwum wersji biblioteki pomocy

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

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() i FragmentActivity.getSupportMediaController(). Użyj nowych statycznych metod MediaControllerCompat.setMediaController() i MediaControllerCompat.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 zamiast View. 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 i someMethod(TextView) pobiera wynik wywołania findViewById().
    • 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.

Nowe interfejsy API

  • FragmentManager i Fragment 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ę zdarzenia onClick() 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 jako android: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 i FlingAnimation mogą teraz animować wartość zmiennoprzecinkową bez konieczności powiązania z nią elementu View lub Object.

    Więcej informacji znajdziesz na stronach podglądu animacji wiosennych i animacji przesunięcia.

  • 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ć z TextView.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 i android:.
  • 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.
  • Biblioteka zgodności emotikonów:
    • EmojiCompat może przetworzyć obiekt CharSequence 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 w TextView.
  • 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ługuje PlaybackTransportRowPresenter i obsługuje przewijanie.
    • Nowa klasa bazowa PlaybackSeekDataProvider dla aplikacji do udostępniania miniatur przewijania dla: PlaybackTransportControlGlue.
  • Magazyn danych preferencji:
    • PreferenceDataStore umożliwia teraz wdrożenie własnych ustawień pamięci masowej ustawionych za pomocą nowych metod w Preference i PreferenceManager.

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ści View (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 stanu FragmentManager. Wykonywanie transakcji przez powracających klientów jest niebezpieczne i FragmentManager 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 metody getLatLong(), która nie przyjmuje żadnych argumentów i zwraca double[].
mediacompat
Funkcja
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) została wycofana. Użyj nowej metody setErrorMessage(int, CharSequence), która przekazuje kod błędu i opcjonalny opis.
Interfejs
EXTRA_SUGGESTION_KEYWORDS został wycofany. Zamiast tego użyj funkcji wyszukiwania MediaBrowserCompat.
v7.recyclerview
Nazwa LinearLayoutManager.getInitialItemPrefetchCount() została zmieniona na LinearLayoutManager.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() i CustomTabsService.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() i MediaBrowserServiceCompat.onSearch().
Dodano obsługę trybów tasowania i powtarzania. Szczegółowe informacje znajdziesz w dokumentacji MediaSessionCompat.setRepeatMode() i setShuffleModeEnabled().

Rozwiązane problemy

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ębie WearableExtender

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() i Fragment.startPostponedEnterTransition(). Ten interfejs API jest podobny do Activity.postponeEnterTransition() i Activity.startPostponedEnterTransition() używanego z Przenoszeniem aktywności.

Rozwiązane problemy

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 w RecyclerView wewnętrznym widżetie, ile elementów należy przygotować przed przewinięciem ekranu. Wywołanie LinearLayoutManager.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 temu RecyclerView może na początku utworzyć wszystkie istotne widoki, podczas gdy zewnętrzny komponent RecyclerView przewija się, co znacznie zmniejsza przypadki zacinania się podczas przewijania.
  • Reguły FragmentActivity.setSupportMediaController() i FragmentActivity.getSupportMediaController() zostały wycofane. Użyj nowych statycznych metod MediaControllerCompat.setMediaController() i MediaControllerCompat.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

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() rzutuje IllegalArgumentException
  • Animowanie elementów RecyclerView odłącza wewnętrzne elementy RecyclerView, 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.

Wersja 25.0.1

(Listopad 2016 r.)

Rozwiązane problemy

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 nazwie fromMediaSession().
  • Usunięto: android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object). Wykorzystanie powinno zostać zastąpione metodą o odpowiedniej nazwie MediaSessionCompat.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 funkcji android.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 i DecoratedMediaCustomViewStyle, 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:

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:

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() i View.performAccessibilityAction().
support-core-utils
Udostępnia wiele klas narzędzi, takich jak AsyncTaskLoader i PermissionChecker.
support-core-ui
Stosuje różne komponenty związane z interfejsem, np. ViewPager, NestedScrollView i ExploreByTouchHelper.
support-media-compat
Backporty części platformy media, w tym MediaBrowser i MediaSession.
support-fragment
Sportuje platformę fragment. Ten moduł wymaga tych atrybutów: support-compat, support-core-utils, support-core-ui i support-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

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ń na KeyEvent
    • android.support.v4.view.MotionEventCompat: użyj MotionEvent
    • android.support.v4.view.ViewCompat: użyj View
    • android.support.v4.view.ViewConfigurationCompat: użyj ViewConfiguration
  • 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 metoda getReferrer(Activity) zostanie zmieniona na statyczną.
  • Interfejs CoordinatorLayout.Behavior.isDirty() został wycofany i usługa CoordinatorLayout 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.
  • Interfejs CustomTabsSession.setToolbarItem() został wycofany i zastąpiony przez obiekty setSecondaryToolbarViews() 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 parametr setRefreshing(true) przed pierwszym wynikiem pomiaru (problem AOSP 77712)
  • Zapobiegaj migotaniu strony TabLayout podczas zmieniania stron (problem AOSP 180454)
  • Unikaj regresji typu ClassNotFoundException przy cofaniu marszlingu SavedState 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:

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() i getImportance()
  • Funkcja MediaSessionCompat odzwierciedla teraz funkcjonalność MediaSession i nie wywołuje już automatycznie funkcji setMediaButtonReceiver().

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ść.

Zmiany w bibliotece appcompat w wersji 7:
  • Dodano obsługę odwoływania się do tematycznych obiektów ColorStateList z pliku XML
Zmiany w bibliotece pomocy dotyczącej projektowania:
Zmiany w bibliotece funkcji Currents w wersji 17:
  • Dodano OnboardingFragment, aby umożliwić proces powitania i konfiguracji przy pierwszym uruchomieniu
Zmiany dotyczące kart niestandardowych:
  • Dodaliśmy obsługę hierarchii RemoteViews na potrzeby dodatkowego paska narzędzi
  • Dodano element CustomTabsClient.connectAndInitialize() na rozgrzewkę jednowierszową

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:
Zmiany w bibliotece pomocy dotyczącej projektowania:
Zmiany w bibliotece rysunkowej wektorowej:

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.
Zmiany w bibliotece appcompat w wersji 7:
Zmiany w bibliotece mediarouter v7:
Zmiany w bibliotece ustawień wersji 7:
Zmiany w bibliotece Recyclerview w wersji 7:
Zmiany w bibliotece pomocy dotyczącej projektowania:

Wersja 23.2.1

Marzec 2016

Zmiany w bibliotece pomocy dotyczącej wersji 4:
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)
Zmiany w bibliotece widoku kart v7:
Zmiany w bibliotece Recyclerview w wersji 7:
Zmiany w bibliotece mediarouter v7:
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.
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 elementu android: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 widoku CoordinatorLayout przy użyciu zapisanego stanu widoku innego niż CoordinatorLayout.
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)

Wersja 23.2.0

Luty 2016 r.

Zmiany w bibliotece pomocy technicznej wersji 4:
  • Dodano poziom pomocy MediaBrowserCompat w przypadku pomocy typu MediaBrowser i MediaBrowserServiceCompat 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 tagu FragmentActivity.
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.
Zmiany w bibliotece mediarouter v7:
Zmiany w bibliotece pomocy dotyczącej projektowania:
  • Dodaliśmy obsługę dolnych arkuszy. Wtyczka interakcji BottomSheetBehavior umożliwia widok podrzędny elementu CoordinatorLayout pełniący rolę arkusza dolnego. Klasa podstawowa BottomSheetCallback udostępnia wywołania zwrotne do monitorowania zdarzeń u dołu arkusza.
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. Komponenty AnimatedVectorDrawable 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 w ImageButton lub ImageView, użyj atrybutu XML app:srcCompat lub metody setImageResource().
  • 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
        }
      }
      
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ów GuidedAction, które użytkownik może wybrać w widoku Działania.
    • Pola opisu można teraz edytować:
      • GuidedAction.Builder.descriptionEditable(): podczas przekazywania parametru true ustawiany jest opis działania, który można edytować.
      • GuidedAction.getEditDescription(): zwraca opis, który można edytować, jako CharSequence.
    • Dodano listy podrzędne działań:
      • GuidedAction.setSubActions(): ustawia listę GuidedAction jako menu zawierające działania podrzędne.
  • Dodano widżet GuidedDatePickerAction dla funkcji DatePicker:
    • Data jest wybierana za pomocą kolumn roku, miesiąca i dnia i ma możliwy do dostosowania zakres.
    • GuidedDatePickerAction.Builder: klasa konstruktora obiektu GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): ustaw odpowiedni format daty, przekazując odpowiedni 3-znakowy element String, np. “YMD” lub “MDY”. Możesz też użyć atrybutu XML datePickerFormat.
Zmiany w bibliotece RecyclerView w wersji 7:
  • RecyclerView ma teraz opcjonalną funkcję o nazwie AutoMeasure, która pozwala RecyclerView.LayoutManager łatwo opakować zawartość lub obsługiwać różne specyfikacje pomiarowe dostarczone przez nadrzędny obiekt RecyclerView. Obsługuje wszystkie istniejące funkcje animacji RecyclerView.
    • Jeśli masz niestandardowy parametr RecyclerView.LayoutManager, wywołaj setAutoMeasureEnabled(true), aby zacząć korzystać z nowego interfejsu AutoMeasure API. Wszystkie wbudowane obiekty RecyclerView.LayoutManager domyślnie włączają automatyczny pomiar.
    • RecyclerView.LayoutManager nie ignoruje już niektórych ustawień elementu RecyclerView.LayoutParams, takich jak MATCH_PARENT w kierunku przewijania.

      Uwaga: te ograniczenia mogą spowodować nieoczekiwane działanie układów. Pamiętaj, aby określić poprawne parametry układu.

  • Podczas aktualizowania obiektu RecyclerView.ViewHolder o informacje o ładunku DefaultItemAnimator 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ąp getSwipeEscapeVelocity(float defaultValue) i zmodyfikuj element defaultValue.

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)
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 klasy NavigationView.
  • 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)

Wersja 23.1.0

październiku 2015 r.

Zmiany w bibliotece pomocy w wersji 4:
  • Dodano obsługę interfejsu OnScrollChangedListener do widżetu NestedScrollView. 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. Klasa MediaSessionCompat 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.
Zmiany w bibliotece appcompat w wersji 7:
  • Dodano widżety Material Design Seekbar i ImageButton.
  • Zaktualizowano widżet ImageView, aby obsługiwał funkcję odcienia.
  • Zaktualizowano wygląd i działanie widżetu SwitchCompat.
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.
Zmiany dotyczące biblioteki palet v7:
  • Dodano metodę setRegion(), aby umożliwić wyodrębnianie koloru z określonego regionu obiektu Bitmap.
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 obiekt ItemAnimator decyduje, czy chce użyć ponownie tego samego obiektu ViewHolder, 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ą na SimpleItemAnimator, a Twój kod powinien działać tak jak wcześniej. Klasa SimpleItemAnimator 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);
      }
      
Zmiany w bibliotece obsługi preferencji w wersjach 7, v14 i v17:
  • Usunięto interfejsy API umożliwiające kontrolowanie okien EditText.
Zmiany w bibliotece obsługi funkcji TalkBack w wersji 17:
  • Dodaliśmy wersję klasy GuidedStepFragment dla biblioteki pomocy (rozszerza zakres android.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.
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łej SCROLL_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ą atrybutu app:actionLayout lub metody MenuItemCompat.setActionView().
Zmiany w bibliotece obsługi kart niestandardowych:
  • Dodano metodę enableUrlBarHiding() do klasy CustomTabsIntent. Pozwala klientowi dostosować, czy pasek adresu URL ma być automatycznie ukrywany przy przewijaniu w dół.
  • Dodano metodę setActionButton() do klasy CustomTabsSession. Pozwala klientowi zmienić ikonę niestandardowego przycisku działania na już wprowadzonej karcie niestandardowej.
  • Dodano stałe TAB_SHOWN i TAB_HIDDEN jako nowe zdarzenia dla metody onNavigationEvent klasy CustomTabsCallback.

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 jako ActionBar za pomocą metody setSupportActionBar(). (Numer 183334)
  • Klasa AppCompatDialogFragment została zaktualizowana, dzięki czemu nie powoduje już błędu Windows feature must be requested before adding content. (Numer 183186)
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)
Zmiany w bibliotece obsługi kart niestandardowych:

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() i show() do klasy FloatingActionButton na potrzeby automatycznego uruchamiania animacji.
  • Dodano stałą LENGTH_INDEFINITE do klasy Snackbar, która służy do wyświetlania paska powiadomień do czasu jego zamknięcia lub wyświetlenia kolejnego paska powiadomień. Dodano też metody setActionTextColor(int) i setActionTextColor(ColorStateList).
  • Dodano metodę getSelectedTabPosition() do klasy TabLayout 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.

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ć podpowiedzi EditText 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 z ViewPager.
  • 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 elementu CoordinatorLayout.
  • Dodano kontener AppBarLayout – widoku elementu Toolbar 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 elementu Toolbar. Pasek narzędzi może się zwijać przez: przypięcie komponentów u góry ekranu, wprowadzenie przewijania z paralaksą takich komponentów jak ImageView lub dodanie koloru siatki zawartości, gdy widok jest częściowo zwinięty.
Zmiany w bibliotece pomocy w wersji 4:
Zmiany w bibliotece appcompat w wersji 7:

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:
Zmiany w bibliotece appcompat w wersji 7:
Zmiany w bibliotece Leanback w wersji 17:
Zmiany w bibliotece Recyclerview w wersji 7:
Zmiany w bibliotece renderScriptu w wersji 8:

Wersja 22

Marzec 2015 r.

Zmiany w bibliotece pomocy w wersji 4:
Zmiany w bibliotece appcompat w wersji 7:
Zmiany w bibliotece Leanback w wersji 17:
  • Dodano metody getRecycledPoolSize() i setRecycledPoolSize(), 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 klasy DetailsFragment.
  • Dodano metodę replace(), aby zastępować elementy w tablicy adaptera obiektu.
Zmiany w bibliotece mediarouter v7:
Zmiany w bibliotece Recyclerview w wersji 7:

Wersja 21.0.3

Grudzień 2014

Zmiany w bibliotece pomocy w wersji 4:

Wersja 21.0.2

listopadzie 2014 r.

Zmiany w bibliotece pomocy w wersji 4:
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 interfejsu commitIcon.
  • Usunięto atrybut buttonGravity z klasy Toolbar.
Zmiany w bibliotece widoku kart v7:
Zmiany w bibliotece Recyclerview w wersji 7:
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.

Wersja 21.0.1

listopadzie 2014 r.

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.

Wersja 21

Październik 2014

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 z File podczas pracy z drzewami dokumentów. Ta klasa wymaga jednak większych nakładów na przetwarzanie niż interfejs API DocumentsContract dodany na platformie w Androidzie 4.4 (poziom API 19). Dlatego jeśli masz Androida w wersji 4.4 lub nowszej, zalecamy przejście na DocumentsContract.
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żetu Switch, 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.
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.
Nowa biblioteka palet V7:
  • Dodano klasę Palette, która umożliwia wyodrębnianie wyraźnych kolorów z obrazu.
Nowa biblioteka leanback w wersji 17:

Wersja 20

Lipiec 2014

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.

Wersja 19.1.0

Marzec 2014

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.
Zmiany w bibliotece appcompat w wersji 7:
  • Naprawiono problemy z tłem związane z paskiem działań.

Wersja 19.0.1

Grudzień 2013

Zmiany w bibliotece obsługi wersji 4:
Zmiany w bibliotece mediarouter v7:
Zmiany w bibliotece renderScriptu w wersji 8
  • Dodaliśmy propagację błędów w warstwie thunkingu RenderScript.

Wersja 19

Październik 2013

Zmiany w bibliotece obsługi wersji 4:
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.

Wersja 18

Lipiec 2013

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 i SlidingPaneLayout, aby nie powodowały zgłaszania wyjątków do pomiarów podczas edytowania kodu projektu.
  • Ułatwienia dostępu
  • 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.
  • Inne zmiany
    • Dodano klasę pomocniczą WakefulBroadcastReceiver do implementowania wspólnego wzorca wykrywania zdarzenia wybudzania urządzenia i przekazywania zadań do interfejsu Service, 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() i rollbackContentChanged(), które ułatwiają radzenie sobie z aktualizacjami w tle związanymi ze zmianami w danych, które są następnie anulowane.
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 klasy ActionBarActivity.
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.

Wersja 13

Maj 2013 r.

Zmiany w bibliotece obsługi wersji 4:
Nowa biblioteka układu siatki w wersji 7:
  • Dodano GridLayout, aby zapewnić obsługę obiektu układu GridLayout.
  • Dodano android.support.v7.widget.Space, którego można używać do tworzenia pustych obszarów w obiekcie układu GridLayout.

Wersja 12

Luty 2013

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 elementu ViewPager.
  • 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.

Wersja 11

Listopad 2012

Zmiany w bibliotece obsługi wersji 4:

Wersja 10

Sierpień 2012

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.

Wersja 9

Czerwiec 2012

Zmiany w bibliotece obsługi wersji 4:
  • Obsługa interfejsu użytkownika
    • Dodaliśmy obsługę PagerTabStrip, udostępniając dodatkowe funkcje poza PagerTitleStrip.
    • Poprawiliśmy różne błędy w PagerTitleStrip i PagerTabStrip, 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 klasie ViewPager 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ę obiektu onActivityResult(), gdy fragment docelowy już nie istnieje, wysyłanie zdarzeń wyboru do niewidocznych fragmentów, poprawione działanie FragmentTransaction.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.
  • 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.
  • Ogólne ulepszenia.

Wersja 8

Kwiecień 2012

Zmiany w bibliotece obsługi wersji 4:
  • Naprawiono flagi intencji dla obiektów PendingIntent generowanych przez TaskStackBuilder.
  • 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.

Wersja 7

Marzec 2012 r.

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 interfejsem ShareActionProvider w Androidzie 4.0.
  • Dodaliśmy NavUtils i TaskStackBuilder, 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 pomocniczej Notification.Builder w Androidzie 3.0 do tworzenia ustandaryzowanych powiadomień systemowych.

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.

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.
  • Obsługa fragmentów:
    • Zmieniono metodę setStartDeferred() na setUserVisibleHint(boolean).
    • Dodano opóźniony początek w przypadku stron spoza ekranu, aby poprawić wydajność.
  • 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.

Wersja 5

Grudzień 2011

Zmiany w bibliotece obsługi wersji 4:

Wersja 4

Październik 2011

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 typu View 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 wersji AsyncTask, aby zachowywać to samo działanie na wszystkich wersjach platformy.

Wersja 3

Lipiec 2011

Zmiany w bibliotece obsługi wersji 4:
  • Dodano obsługę języka Fragment.SavedState
  • Dodaje interfejs MotionEventCompat, aby obsługiwać nowsze interfejsy API MotionEvent
  • Dodaje interfejs VelocityTrackerCompat, aby obsługiwać nowsze interfejsy API VelocityTracker
  • Dodaje interfejs ViewConfigurationCompat, aby obsługiwać nowsze interfejsy API ViewConfiguration
  • 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: element ViewGroup zarządzający układem widoków podrzędnych, które użytkownik może przesuwać.
    • PagerAdapter: adapter, który umieszcza w elemencie ViewPager widoki danych reprezentujące każdą stronę.
    • FragmentPagerAdapter: rozszerzenie biblioteki PagerAdapter do przechodzenia między fragmentami.
    • FragmentStatePagerAdapter: rozszerzenie biblioteki PagerAdapter do przechodzenia między fragmentami, które korzysta z obsługi Fragment.SavedState w bibliotece.
Nowa biblioteka pomocy dla wersji 13:
  • Obejmuje FragmentPagerAdapter i FragmentStatePagerAdapter, 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).

Wersja 2

Maj 2011

Zmiany w bibliotece w wersji 4:

Wersja 1

Marzec 2011 r.

Pierwsze wydanie z biblioteką w wersji 4.