2013-08-06 8 views
7

Problem jest następujący: w jednej z moich czynności potrzebowałem niestandardowego układu dla paska czynności, a jedynym sposobem na zrobienie tego, jak to było potrzebne, było uzyskanie przezroczystości. ActionBar na moim ekranie. Aby to zrobić, oznaczyłem pasek akcji jako nakładkę i określiłem tło paska akcji jako przezroczyste. Działa to, gdy używasz Androida> = 15, ale w 14 i poniżej, pasek akcji zachowuje dolną granicę. Próbowałem wszystkiego, by go usunąć, bez skutku.Obramowanie programu ActionBar nie zniknie w przypadku nakładki

Oto obraz, aby go zobaczyć jaśniej:

Na API 14: ActionBar on API 14

Na API 16: ActionBar on API 16

projekt jest następujący: Bar Akcja ma być przezroczystym i w trybie nakładki, a za nim znajduje się tło + logo Kilka szczegółów: używam ABS, ale nie wydaje mi się to źródłem problemu, ponieważ przejście do biblioteki wsparcia v7 zrobiło dokładnie to samo.

Czy ktoś ma pomysł, jak usunąć tę dolną granicę?

+0

Więc myślę, że to wszystko o tym, jak inna wersja interpretować '.png' obrazy. Czy możesz ustawić tło obrazu tak, aby było jak gradient tła. Będę szukał mojej hipotezy. – g00dy

+0

Faktem jest, że pasek akcji ma być przezroczysty (i nakładany), aby zobaczyć obraz poniżej. –

+0

Ok, pozwól, że cię o to zapytam, dlaczego linia pozioma znika tylko częściowo z interfejsu API 16 - czy obraz ma długość (szerokość)? Zauważyłem również, że w interfejsie API 14 masz podwójną linię za logo, które znika, jak chcesz, ale druga linia jest widoczna. Zastanawiam się - czy możesz tu wkleić zasoby, aby je zobaczyć - obrazek do logo (na kafelkowym tle, z jego rozmiarami), obraz (gradient.xml lub normalny gradient obrazu), którego używasz do ActionBar + cały "xml", jeśli to nie problem? – g00dy

Odpowiedz

3

zgodnie z zaleceniami i test Luksprog w komentarzu, użyłem Theme.Sherlock (zamiast Theme.Sherlock.Light) w moim pasku akcji dla tej strony i skopiowałem z mojego starego motywu potrzebne ustawienia. Wydaje się, że to rozwiązało problem, ale nie jestem całkowicie pewien źródła. Jedyną radą, którą mogę dać ludziom, którzy będą chcieli to zobaczyć, będzie użycie Theme.Sherlock.

0

Możesz ukryć pasek działań w wywołując hide() metody:

ActionBar actionBar = getSupportActionBar(); 
actionBar.hide(); 

Albo można ustawić to w swoim manifeście, jeśli chcesz, aby ukryć go na stałe:

<activity 
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
> 
+0

Nie chcę całkowicie ukrywać paska działań, ponieważ nadal potrzebuję przycisku. Po prostu chcę, aby było całkowicie przezroczyste (co działa w 16+, ale nie wcześniej). –

+0

@Valentin Rocher: Masz na myśli coś takiego: http://stackoverflow.com/questions/13726214/transparent-actionbar-custom-tabcolor –

+0

tak, ale żadne rozwiązanie nie działało dla tego problemu –

3

Próbowałem zrobić simple activity, aby pokazać zachowanie, ale nie udało mi się tego zrobić. Kiedyś Activity z tematem Theme.Sherlock:

android:theme="@style/Theme.Sherlock 

i uczynienia nakładkę (w metodzie onCreate()):

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); // Window from com.actionbarsherlock.view 
//... 
setContentView(content); 
ActionBar ab = getSupportActionBar(); 
ab.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
Powiązane problemy