En utilisant Android, ici fait partie d'un fichier xml de mise en page:TextView dans un LinearLayout, accident avec une longue chaîne
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:textColor="#191919">
<TextView android:id="@+id/someTextField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textStyle="bold" />
<TextView android:id="@+id/anotherTextField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
J'ajoute ce point de vue (à l'exécution) à un ViewAnimator
comme celui-ci:
ViewAnimator viewAnimator = (ViewAnimator)findViewById(R.id.viewAnimator);
View newView = View.inflate(this, R.layout.new_view, null);
viewAnimator.addView(newView);
viewAnimator.showNext();
String newValue = "new value for the text field";
findViewById(R.id.deal_view).setVisibility(View.VISIBLE);
TextView someTextField = (TextView)findViewById(R.id.someTextField);
someTextField.setText(newValue);
Cela semble fonctionner très bien, mais quand newValue
est assez long pour prendre plus de 1 ligne de texte dans la mise en page, je reçois un accident:
09-06 21:36:48.208: ERROR/AndroidRuntime(6561): Uncaught handler: thread main exiting due to uncaught exception
09-06 21:36:48.248: ERROR/AndroidRuntime(6561): java.lang.StackOverflowError
09-06 21:36:48.248: ERROR/AndroidRuntime(6561): at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
09-06 21:36:48.248: ERROR/AndroidRuntime(6561): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
(many more lines like this)
Est-ce assez d'informations pour voir ce que je pourrais faire de mal? Cela fonctionne parfaitement bien quand newValue
est assez court pour une ligne. J'ai pensé à essayer un TableLayout
mais il semble que c'est exactement ce qu'un LinearLayout
est bon pour.
Juste curieux, pourquoi utilisez-vous ViewAnimator directement? ViewFlipper ou ViewSwitcher ne font-ils pas exactement cela pour vous? – Matthias
ViewFlipper et ViewSwitcher ... Je vais leur donner un essai pour voir si cela aide du tout ... Je suis assez nouveau pour Android encore, alors merci pour le conseil. – marcc
J'espère que vous avez résolu votre problème! Mais je pense que le problème est avec ERROR/AndroidRuntime (6561): java.lang.StackOverflowError Cela se produit normalement en raison de la profondeur dans la hiérarchie de l'interface utilisateur. – bhatt4982