8

Zajmuję się tworzeniem aplikacji na Androida z fragmentami. Podczas gdy większość moich układów jest wstępnie określona w XML, chciałbym programowo wstawić nowy widok pomiędzy widokami, które były już załadowane w LinearLayout podczas uruchamiania.Android - jak programowo zaklinować widok między widokami w układzie załadowanym wstępnie z pliku XML?

enter image description here

Jak mogę chodzić z tym?

Dzięki

+0

Jaki jest widok z czarną obwódką? Czy to jest LinearLayout? – wsanville

+1

+1 za dołączenie wyraźnej ilustracji. –

Odpowiedz

3

Możliwe jest określenie indeksu podczas dynamicznego dodawania widoku do LinearLayout.

Ustaw wysokość pierwszego widzenia jako

android:layout_height="0dp" 
android:layout_weight="1" 

Ustaw height = wrap_content do drugiego widoku w XML

Następnie natomiast u dodajesz nowy widok dynamicznie, należy ustawić jego height = wrap_content i dodać go do rodzica LinearLayout jak to

parentLinearLayout.addView(childView, index);  
       //index = position where you want to insert the new view. 

To może ci pomóc. :)

3

czerwona Zobacz powinny mieć domyślne ustawienia View.setVisibility(View.GONE) na samym początku. Kiedy nadejdzie czas, aby się pokazać, możesz przełączyć się na View.setVisibility(View.VISIBLE). Nie mogę teraz zweryfikować rozwiązania, ale powinno to wystarczyć. Dlatego w tym przypadku nie wstawiasz nowego widoku, ale już widać istniejący.

+0

Dziękuję. Choć może to zadziałać, szukałem bardziej dynamicznego sposobu na to. Rahmathullah zapewnił sposób, aby zrobić to programowo – LoneDuck