1

Android を使用して、レイアウト xml ファイルの一部を次に示します。

<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>

このビューを(実行時に)次のように追加していますViewAnimator

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); 

これは正常に動作しているようですnewValueが、レイアウトに 1 行以上のテキストを表示するのに十分な長さになると、クラッシュが発生します。

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)

これは、私が間違っている可能性があることを確認するのに十分な情報ですか? newValueが 1 行に十分短い場合は、完全に正常に機能します。aを試してみようと思ったTableLayoutのですが、まさにこれがaのLinearLayout良さのようです。

4

1 に答える 1

0

コメントで助けてくれてありがとう。私はここでアドバイスを受けることになりました(ViewAnimatorを直接ドロップし、ViewFlipperを使用します)。より良いアプリですが、それでも同じ問題です。LinearLayout コンテナを 1 レベル落としたところ、正常に動作し始めました。

私は bhatt4982 が正しいと仮定しています。UI の深さが大きすぎました。

bhatt4982、これに対するクレジットを得るために、コメントを回答として投稿してください。

于 2009-09-10T23:04:22.927 に答える