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;
}
}
}
Muchas gracias indyfromoz. Funciona bien. – jennifer
@Jennifer: Si esta respuesta resolvió su problema, debe aceptarlo. – Mudassir