2013-05-23 18 views
5

Mam 4 przyciski w moim układzie liniowym i muszę wnieść do przodu pierwszy przycisk.android - układ liniowy bringToFront()

normalna kolejność jest

Button 1 | Button 2 | Button 3 | Button 4 

Ale gdy zgłoszę button1.bringToFront() funkcja, button1 się skończy jak

Button 2 | Button 3 | Button 4 | Button 1 

Jak mogę rozwiązać ten problem. Względny układ nie powoduje tego problemu, ale muszę użyć LinearLayout, ponieważ przyciski będą zamawiać pionowo, a ja usuwam przycisk w pewnych warunkach.

Dzięki

+0

co wyjście szukasz? –

Odpowiedz

7

LinearLayout nie działa z osi, stąd jego nazwa linear. Spróbuj użyć RelativeLayout, a następnie zadzwoń pod numer bringToFront(), aby uzyskać pożądany efekt. Dzięki RelativeLayout możesz zadzwonić pod numer layout_alignBollow, aby zamówić widoki w pionie. Lub możesz zagnieździć widoki i układy, na przykład w swoim LinearLayout gnieździe trzy RelativeLayout w tych, które możesz umieścić w swoim Buttons (uważaj z tym podejściem, ponieważ dodanie zbyt wielu widoków może być złe).

+0

Co to jest layout_alignBollow? – dracula

+0

Miałem rząd nakładających się przycisków. Twoja porada użycia RelativeLayout zamiast LinearLayout zadziałała dla mnie (w połączeniu z requestLayout() i unieważnieniem() na tym RelativeLayout (jest to rodzic nakładających się przycisków) – MacD

+0

@dracula: najprawdopodobniej oznaczał layout_alignBottom .. – GeertVc

0

Wykonaj wywołanie układu forceLayout(), aby wyłączyć ponowne ustawienie układu.

+0

Czy możesz opracować? –

1

Od bringToFront zamawiałam zamówienie LinearLayout, postanowiłem użyć RelativeLayout i umieścić "najwyższy" widok (widok, który chcę na górze) jako ostatni w XML.

przykład:

<RelativeLayout ...> 

    <ViewBelow 
     android:layout_below="@+id/view_on_top" 
     ... 
     /> 

    <!-- Last view in XML appears above other views on screen --> 
    <ViewOnTop 
     android:id="@+id/view_on_top" 
     ... 
     /> 

</RelativeLayout> 

W szczególnym przypadku to pytanie ViewOnTop będzie przycisk 1 i ViewBelow będzie LinearLayout zawierające inne przyciski.

0

Jeśli musisz pracować z osią Z w LinearLayout, możesz użyć funkcji setTranslationZ.

Przykład:

yourView.setTranslationZ(100); 
Powiązane problemy