SetVisibility non funziona?

Sono nuovo di sviluppare con android. Ho una griglia contenuta in un LinearLayout e ogni elemento che compone la griglia è un pulsante. Voglio che questo LinearLayout essere invisibile quando l’utente preme uno di questi tasti.

Questa è la mia ‘casa’ layout shell:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
  <TextView/>
  <LinearLayout>   //<-- this is the layout I want to hide
     <TextView/>
     <GridView/>
  </LinearLayout>
</LinearLayout>

E questo è il metodo onClick che ho impostato in MyArrayAdapter (usato per gonfiare i pulsanti)

@Override
public void onClick(View v) {
   View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null);  
   LinearLayout ll_options = (LinearLayout) convertView.findViewById(R.id.ll_options);
   ll_options.setVisibility(View.INVISIBLE);
}

Penso che dovrebbe funzionare, ma quando faccio la prova, non succede nulla.

Ho trovato una domanda simile ma non risolve il mio problema.

OriginaleL’autore dnaranjo | 2012-04-19

3 Replies
  1. 8

    Perché si gonfia un layout qui?:

    View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null);

    :

    View v = activity.findViewById(R.id.ll_options);
    v.setVisibility(View.INVISIBLE);
    Tutte le facoltà, che è stato l’errore. Grazie per la veloce anwers!

    OriginaleL’autore gngr44

  2. 2

    Si crea una nuova vista che non è visibile gerarchia della vista fino ad aggiungere, e poi si nasconde. Così si nasconde qualcosa di invisibile.

    Invece, provare:

    @Override
    public void onClick(View v) {
       findViewById(R.id.ll_options).setVisibility(View.INVISIBLE);
    }

    che dovrebbe IMO lavoro. Cerca le ll_options vista all’interno del visibile (globale) vista gerarchia della vostra attività e si nasconde.

    Questo è giusto, se si può in realtà preferisco View.GONE per View.INVISIBLE, a seconda dell’applicazione.
    yup, a seconda se si desidera liberare spazio e la vista che ha preso (ANDATO) o semplicemente nascondere, ma mantenerla è spazio (INVISIBILE), solo l’impostazione invisibile è anche più veloce se si cambia tra visibile e invisibile, e molto, dall’gerarchia della vista non è cambiato

    OriginaleL’autore zapl

  3. 0

    EDIT:

    Dove è il pulsante? Lo stesso formato di file?
    Si gonfiano un nuovo layout e nascondere il LinearLayout c’, ma questo nuovo layout non viene mai utilizzato. Essere sicuri di avere accesso al contentView nel vostro ascoltatore.

    OriginaleL’autore dudeldidadum

Lascia un commento