2016-07-31 26 views
11

Jak wiemy, kolorowe tło paska akcji dozwolone na sdk poziom 11, obejrzyj this. Ale są pewne aplikacje z kolorowym paskiem akcji, które mają min sdk niższe niż 11. Na przykład Whatsapp ma zielony pasek akcji, ale ma min sdk: 7 WhatsApp FAQ lub aplikacja Telegram ma min sdk: 8 Telegram FAQ, ale ma niebieski pasek akcji.Jak zmienić kolor tła paska akcji bez zwiększania min. Sdk?

Jak działają te aplikacje? I jak mogę to zrobić?

android.app.ActionBar actionBar = (android.app.ActionBar) getActionBar(); 
actionBar.setDisplayShowHomeEnabled(false); 
View mActionBarView = getLayoutInflater().inflate(R.layout.action_bar_main, null); 
actionBar.setCustomView(mActionBarView); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

Ten kod wymaga minSdk = 11, dla getActionBar(). Proszę pomóż mi.

+3

Prawdopodobnie użyć biblioteki lub może mieć swoje własne realizację ActionBar (w układzie). Prawdopodobnie. – Shaishav

+0

'setSupportActionBar'? To pozwala min. Pasek narzędzi API 7, wierzę, że –

Odpowiedz

6

the Toolbar (nowa nazwa ActionBar wprowadzona w Lollipop) to zwykły widok.

Link: https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

wystarczy ustawić jego tło jak każdy inny widok.

// java 
toolbar.setBackgroundColor(int color); 
// or 
toolbar.setBackgroundResource(int resId); 

// or XML 
android:background="@drawable/toolbarBackground" 
+2

Mark as answer already :) – Warpzit

+0

Link, który podałeś w celach referencyjnych, nie zawiera metod 'setBackgroundColor()' lub 'setBackgroundResource()', czy też czegoś mi brakuje? – Talha

+0

@Talha widocznie tak, brakuje ci ważnego szczegółu; oficjalny link do dokumentacji, który podałem, pokazuje, że pasek narzędzi rozciąga się od "widoku". Metody setBackground pochodzą z klasy widoku – Budius

0

Aby zmienić kolor paska narzędzi użyć tego:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.toolbar_color_primary))); 
Powiązane problemy