2012-01-05 22 views
7

Nella mia applicazione sto aggiungendo la vista dinamicamente al layout lineare. ogni vista è composta da un pulsante se si fa clic su quella vista sarà cancellata. Come aggiornare il layout lineare? perché quando ho rimosso qualsiasi vista, le posizioni della vista saranno cambiate.android - come rimuovere la vista del layout lineare

risposta

10

Per rimuovere qualsiasi vista è possibile utilizzare

ll.removeView(view)// to remove particular view 
ll.removeViewAt(position);// to remove view from particular position 

Usa seguente logica per rimuovere qualsiasi vista dal layout

ll.post(new Runnable() { 
    public void run() { 
     ll.removeView(view); 
    } 
}); 
+1

perché non hai usato "removeAllViews()" come questo: ll.removeAllViews(); – NrNazifi

4

La tua domanda non è chiara. Ma potresti provare a impostare la vista come visibility = gone.

0

Forse si è tentato

setContentView(R.layout.main); 

dopo rimuove?

+0

Ah, dimenticavo che la creazione di elementi dynamicaly – quux

0

Come aggiornare il layout lineare?

linearLayoutObject.invalidate() 

Come rimuovere voce dal layout lineare?

linearLayoutObject.removeView(View view); 

o

linearLayoutObject.removeViewAt(int index); 

Spero che aiuta ..

+0

Si prega di smettere suggerendo modifiche in cui si "fissare" i collegamenti. Sostituire il testo del collegamento con "Link1" o qualcosa di simile è una modifica terribile, e stai lavorando per le persone che devono risolverli. Vedi la mia modifica su come i collegamenti * devono * funzionare: http://stackoverflow.com/q/8741270/229044 – meagar

2

rimuovendo o aggiungendo vede la LinearLayout deve misurare e il layout tutti i suoi figli ancora una volta che è il motivo per cui si muovono. Potresti semplicemente provare a impostare la visibilità su invisibile.

qualsiasi vista impostata su invisibile mantiene le sue dimensioni e il posizionamento nel layout ma non può più essere vista.

0

Utilizzare listview con Adapter per riempire i dati dinamicamente (perché è quello che sono fatti) e ogni volta che i dati o l'IU vengono cambiati creare un nuovo adattatore (set di dati) e notificare all'adattatore le modifiche.

0

sufficiente utilizzare linearLayout.removeView (Panorama vista); Si aggiornerebbe automaticamente.

0

layout.removeAllViewsInLayout(); layout.invalidate();

Spero che questo aiuto

Problemi correlati