Domanda

Così mi può gonfiare un ViewStub in fase di esecuzione. Diciamo che voglio farlo sparire e poi magari gonfiare di nuovo a seconda qualche evento che si verifica (ad esempio, una barra degli strumenti che si gonfia e si sgonfia in base alle quali l'utente seleziona sullo schermo).

posso usare View.setVisibility (View.GONE) .... c'è qualche altro modo?

O sto facendo qualcosa di sbagliato qui?

Grazie! :)

È stato utile?

Soluzione

layout Gonfiaggio può essere costoso, soprattutto sui dispositivi più vecchi. Pensate a ViewStub come più di un meccanismo minimale carico per view sottostrutture che può o non può mai ottenere in espansione, piuttosto che un modo per salvare le parti di una gerarchia vista in fase di esecuzione. Una volta gonfiato, non c'è niente di sbagliato con lo scambio tra visibile / GONE. GONE renderà il quadro saltare quel sotto-albero mentre percorre costosi.

Questo è vero fino a quando non è necessario la memoria utilizzata dalla vista gonfiato. Impostazione di visibilità per GONE non rilascia alcuna memoria di sorta; esso soltanto segna la vista come andato per il layout e le finalità di disegno. Per rilasciare la memoria di vista gonfiato del viewstub, si dovrebbe in realtà per rimuovere la vista gonfiato e sostituirlo con un nuovo viewstub per un utilizzo futuro.

Altri suggerimenti

Sì, è possibile rimuovere whenver desideri .i lo hanno fatto solo ora.

ViewStub stub = findById(...);
View v = stub.inflate();

e vista set di visibilità su qualsiasi evento.

v.setVisibility(View.GONE);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top