addView ne fonctionne pas
J'ai lu probablement à tous les postes et de la documentation, mais je n'arrive toujours pas à résoudre ce problème.
Je veux utiliser addView() la méthode pour ajouter une vue de l'existant (en cours) mise en page, mais pour une raison que je ne peux pas. Je sais que ce devrait être facile et basique, mais encore je ne peux pas le faire. Donc, s'il vous plaît aider moi.
Voici un code:
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
TextView text=new TextView(this);
text.setText("test");
layout.addView(text);
C'est un code, et le résultat est que j'affiche seulement des vues qui sont définis dans le fichier xml. Il n'est pas de cette nouvelle manière de voir que j'ai ajouté.
Quand je debug, je vois cette vue ajoutés en tant qu'enfant de la mère à laquelle j'ai ajouté, mais il n'est pas affiché.
est ici 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>
S'il vous plaît aider. Cela me rend fou!
source d'informationauteur Majstor
Vous devez vous connecter pour publier un commentaire.
Vous avez oublié de spécifier l'
LayoutParameters
pour la vue nouvellement ajoutée.MODIFIER
La
GridView
avec un id de@+id/gridview
est définie avec une mise en page à la hauteur defill_parent
vous laissant plus de place pour ajouter un nouveau point de vue. Changer sa hauteur àwrap_content
peut résoudre votre problème.Ajouter mon commentaire à ce post pour aider les autres à vérifier facilement la solution.
J'ai eu le même problème et le gaspillage de plusieurs temps à la recherche de la raison.
De ma faute, j'étais l'ajout d'un CustomView qui avait match_parent définie comme la hauteur.
J'espère gagner un temps précieux pour toute personne qui a fait cette stupide erreur ennuyeux 🙂
Votre linearLayout contenu est plus le parent de la Vue. si vous avez besoin d'utiliser le ScrollView.
comme ceci:
Je ne me souviens pas, mais peut-être qu'il existe une "actualisation" de la méthode pour charger à nouveau la mise en page.
Tenter de mise en page.invalidate();