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.
- ¿Por qué las vistas pierden el relleno cuando se establece un backgroundResource de xml?
- Los botones deben ser tan anchos como los
- Ver paginador androide con imagen de fondo único
- Cómo configurar SearchView TextSize?
- Problema: el niño especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
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!
- Contenedor personalizado para Android (hexagonal) con adaptador
- Obtener el id de una vista como String en el evento onClick
- Eliminar un oyente de una vista en android
- Stream de video de autorrotación TextureView en Nexus4 (pero no en Galaxy S4)
- GetDrawingCache devuelve siempre el mismo Bitmap
- Obtener el ancho / altura de la vista o el ancho / altura / otros tamaños de la fuente antes de la primera visualización
- Android: vista de 360 grados de un objeto
- Android: Redibujar una vista específica dentro de un diseño
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>
- Android prueba: cómo comprobar un diálogo se muestra en la pantalla? (mediante ActivityInstrumentationTestCase2)
- Firebase Crash Library – NullPointerException en la consola