@schwiz, jak możemy zresetować identyfikator widoku w tym przypadku Mój problem polega na tym, że nawet po zakończeniu mojej aktywności za każdym razem, gdy zostanie dodany następny widok, identyfikator widoku zostanie zwiększony. Chcę, aby identyfikator widoku był domyślnie ustawiony na 1, gdy wrócę do tej czynności .
AndroidNewBee
Dziękuję bardzo za udzielenie tej odpowiedzi
hem
ViewGroup rozszerza View implementuje ViewParent, ViewManager. ładniej to nazwać z castingiem do (ViewGroup)
Mercury
24
Użyj ViewStub i określ układ widoku, który chcesz przełączyć. Obejrzeć:
Jeśli chcesz ukryć / odkryć, możesz użyć .setVisibility (View.INVISIBLE) i .setVisibility (View.VISIBLE). Gdy widok jest niewidoczny, użytkownik nie może z nim wchodzić.
dennisschagt
Powiedzmy, że mam textView z dołączonym do niego onClickListener. Jeśli sprawię, że zniknie, a następnie go dotknę, czy zdarzenie będzie nadal działać?
ahitt6345
22
To najlepszy sposób
LinearLayout lp =newLinearLayout(this);
lp.addView(newButton(this));
lp.addView(newImageButton(this));// Now remove them
lp.removeViewAt(0);// and so on
Jeśli masz układ XML, nie musisz dodawać dynamicznie. Po prostu zadzwoń
Jaka będzie różnica w wydajności? Mam na myśli różnicę w wydajności dodawania ich dynamicznie lub umieszczania ich w statycznym pliku układu xml i pozwalania na zawyżenie?
stdout
19
Aby dodać widok do układu, możesz użyć addViewmetody ViewGroupklasy. Na przykład,
To rozwiązało mój problem, bardziej niż każda inna odpowiedź. Przydatne, jeśli tak jak ja, twoje tło lub niektóre parametry uniemożliwiają całkowite zniknięcie widoku.
Virthuss
1
Dzieje się tak, ponieważ View.GONE nie usuwa widoku układu, tylko czyni go niewidocznym i nie zajmuje miejsca do celów układu.
Victor
6
Świetna odpowiedź od Sameera i Abla Terefe. Jednak gdy usuwasz widok, w mojej opcji chcesz usunąć widok z określonym identyfikatorem. Oto jak to robisz.
1, nadaj widokowi identyfikator podczas jego tworzenia:
cześć, jeśli jesteś nowy w Androidzie, użyj w ten sposób Zastosuj swój widok, aby zniknął, jest jeden sposób, w przeciwnym razie zdobądź widok rodzica i usuń z niego dziecko ..... w przeciwnym razie pobierz układ nadrzędny i użyj tego metoda an remove all child parentView.remove (child)
Odpowiedzi:
Zrobiłem to tak:
źródło
(ViewGroup)
:)Użyj ViewStub i określ układ widoku, który chcesz przełączyć. Obejrzeć:
Zniknąć:
źródło
To najlepszy sposób
Jeśli masz układ XML, nie musisz dodawać dynamicznie. Po prostu zadzwoń
źródło
Aby dodać widok do układu, możesz użyć
addView
metodyViewGroup
klasy. Na przykład,Istnieje również kilka metod usuwania. Sprawdź dokumentację ViewGroup . Jednym prostym sposobem usunięcia widoku z układu może być:
źródło
Do zmiany widoczności:
Do usunięcia:
źródło
Świetna odpowiedź od Sameera i Abla Terefe. Jednak gdy usuwasz widok, w mojej opcji chcesz usunąć widok z określonym identyfikatorem. Oto jak to robisz.
1, nadaj widokowi identyfikator podczas jego tworzenia:
2, usuń widok o identyfikatorze:
źródło
możesz użyć addView lub removeView
Jawa:
kotlin:
źródło
cześć, jeśli jesteś nowy w Androidzie, użyj w ten sposób Zastosuj swój widok, aby zniknął, jest jeden sposób, w przeciwnym razie zdobądź widok rodzica i usuń z niego dziecko ..... w przeciwnym razie pobierz układ nadrzędny i użyj tego metoda an remove all child parentView.remove (child)
Sugerowałbym użycie podejścia GONE ...
źródło
Usuwam widok za pomocą metody start i count, dodałem widok 3 w układzie liniowym.
view.removeViews (0, 3);
źródło
Rozwiązanie wielokrotnego użytku Kotlin
Uprość usuwanie
Dodaj to rozszerzenie:
Uprość dodawanie
Oto kilka opcji:
źródło