2011-01-07 10 views
27

Tengo un diseño con los datos de contacto del teléfono. Cuando hago clic en el menú de opciones, necesito hacer un texto de edición visible en esa pantalla. Lo he hecho. Pero existe el problema de que la altura del texto de edición está ocupada en la pantalla cuando se hace invisible. ¿Cómo puedo eliminar el espacio ocupado por editar texto, mientras que su invisible en la pantalla (layout) .. Mi código se da a continuaciónOcultar un texto de edición y hacerlo visible haciendo clic en un menú

Mi XML es:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:paddingLeft="10dp" 
    android:paddingRight="10dp"> 

    <ListView android:id="@id/android:list" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_weight="1" 
     android:drawSelectorOnTop="false"> 
    </ListView> 

    <TextView android:id="@id/android:empty" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:text="No Entries available"> 
    </TextView> 




    <TableRow android:id="@+id/TableRow001" 
     android:layout_width="wrap_content" android:background="#C0C0C0" 
     android:layout_height="wrap_content"> 

     <EditText android:id="@+id/NumberEditText01" 

      android:layout_width="wrap_content" 
      android:paddingLeft="20dip" 
      android:layout_height="wrap_content"> 
     </EditText> 

     <Button android:layout_width="wrap_content" android:id="@+id/callNow01" 
      android:layout_height="wrap_content" 
      android:text="Call now" 
      > 
     </Button> 

    </TableRow> 
</LinearLayout> 

y clase:

public class ListContacts extends ListActivity { 

    TableRow tableRow; 
    EditText phoneNumber; 
    Button callNow; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Associate the xml with the activity 
     setContentView(R.layout.activitylist); 
     tableRow = (TableRow) findViewById(R.id.TableRow001); 
     tableRow.setVisibility(View.INVISIBLE); 


     phoneNumber = (EditText) findViewById(R.id.NumberEditText01); 
     phoneNumber.setVisibility(View.INVISIBLE); 
     phoneNumber.setKeyListener(DialerKeyListener.getInstance()); 

     callNow = (Button) findViewById(R.id.callNow01); 
     callNow.setVisibility(View.INVISIBLE); 
    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 

      case FIRST: 
       tableRow.setVisibility(View.VISIBLE); 
       phoneNumber.setVisibility(View.VISIBLE); 
       callNow.setVisibility(View.VISIBLE); 
       break; 
     } 
    } 
} 

Respuesta

74

Probar phoneNumber.setVisibility(View.GONE);

+0

Muchas gracias indyfromoz. Funciona bien. – jennifer

+0

@Jennifer: Si esta respuesta resolvió su problema, debe aceptarlo. – Mudassir

Cuestiones relacionadas