addView no funciona

He leído probablemente todos los mensajes y la documentación, pero todavía no puedo resolver este problema.

Quiero utilizar el método addView () para agregar vista a la disposición existente (en ejecución), pero por alguna razón no puedo. Sé que esto debe ser fácil y básico, pero todavía no puedo hacerlo. Así que, por favor, ayúdame.

Aquí hay un código:

LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); TextView text=new TextView(this); text.setText("test"); layout.addView(text); 

Eso es un código, y el resultado es que he mostrado sólo las vistas que se definen en el archivo xml. No hay esta nueva visión que he añadido. Cuando depuro veo esta opinión agregada como un niño del padre al que lo he agregado pero no se exhibe.

aquí es main.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:id="@+id/mainLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/main1" > <TextView android:id="@+id/app_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#FFF" android:text="@string/app_title" android:textSize="25dp" android:gravity="center_horizontal"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="@string/main_screen_counter_title" android:textSize="15dp" android:textColor="#FFF" android:gravity="center_horizontal"/> <TextView android:id="@+id/frontScreenCounter" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#FFF" android:text="@string/reading" android:textSize="33dp" android:gravity="center_horizontal" /> <GridView android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="3" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" android:textColor="#888" /> </LinearLayout> 

Por favor ayuda. ¡Esto me conducirá loco!

Se olvidó de especificar LayoutParameters para la vista recién agregada.

 LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); TextView text=new TextView(this); text.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); text.setText("test"); layout.addView(text); 

EDITAR

El GridView con un id de @+id/gridview se define con una altura de diseño de fill_parent , dejándote sin espacio para agregar una nueva vista. Cambiar su altura a wrap_content puede resolver su problema.

Añadir mi comentario a esta publicación para ayudar a otros a verificar fácilmente la solución.

Tuve el mismo problema y malgastado varias veces encontrando la razón.

Mi culpa es que estaba agregando un CustomView que tenía match_parent establecido como altura.

Espero ahorrar un tiempo precioso a cualquiera que haya hecho este tonto error molesto 🙂

 TextView tv = new TextView(this); lytMarks.addView(tv); CustomView cv = new CustomView(this, someObject); lytMarks.addView(cv); // <-- This one had height = match_parent!! EditText et = new EditText(this); lytMarks.addView(et); 

No puedo recordar, pero tal vez hay algún "refresh" método para cargar de nuevo el diseño.

Pruebe layout.invalidate ();

Su contenido linearLayout está sobre la Vista de los padres. por lo que necesita utilizar ScrollView. Me gusta esto:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/mainLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/main1" android:orientation="vertical"> <TextView android:id="@+id/app_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/app_title" android:textColor="#FFF" android:textSize="25dp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:gravity="center_horizontal" android:text="@string/main_screen_counter_title" android:textColor="#FFF" android:textSize="15dp" /> <TextView android:id="@+id/frontScreenCounter" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/reading" android:textColor="#FFF" android:textSize="33dp" /> <GridView android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:columnWidth="90dp" android:gravity="center" android:horizontalSpacing="10dp" android:numColumns="3" android:stretchMode="columnWidth" android:textColor="#888" android:verticalSpacing="10dp" /> </LinearLayout> </ScrollView> 
  • ¿Cómo podemos agregar maxlength en SearchView?
  • Android: ¿Cómo obtener una vista dada una actividad dentro de una clase normal?
  • ¿Cómo crear un semicírculo transparente?
  • ¿Cómo puedo obtener el punto / coordinar el usuario hizo clic en una vista de Android?
  • Android SearchView cadena vacía
  • Iterar a través de vistas en un diseño y cambiar la tipografía
  • GridView getChildAt () devuelve null
  • Android superponer una vista ontop de todo?
  • Cómo resaltar el texto filtrado mientras se usa el widget SearchView en android
  • Número de rejillas para diferentes dispositivos
  • ¿Puedo agregar vistas a una vista de desplazamiento sin inflar / volver a inflar los diseños?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.