0

私はサードパーティのツールを使用しTableViewて iPhone に似たものを作成しています。ここで確認できます

私はこのパッケージをかなり編集し、行に EditText を持つ機能を追加しました。さまざまなデバイスでテストしましたが、うまく機能します。今私が抱えている問題は、ネストされたレイアウト内にこの UITableView があり、行に編集テキストを与えると、ユーザーが一部の古いデバイスで EditText をクリックすると、スタックオーバーフローが発生することです。

これはフラグメント内にあります。構造はこんな感じ

(1) (2) (3) (4) RelativeLayout -> RelativeLayout -> RelativeLayout -> ScrollLayout -> UITableView

これには少し背景がありますが、簡単に言えば、これらすべてのレイアウトが必要なので、そのうちの 1 つを削除することはできません。RelativeLayouts の 1 つを削除してもアプリがクラッシュしないので、これはイライラします。

Android UITableView もいくつかの LinearLayouts を使用してセットアップされます。理想的には、LinearLayout をスクロールできるように設定できれば素晴らしいと思います。そうすれば、ScrollLayout を削除して問題を解決できますが、残念ながらそれが可能だとは思いません。

私が得ているエラーは

06-13 07:42:23.399: E/AndroidRuntime(1429): FATAL EXCEPTION: main
06-13 07:42:23.399: E/AndroidRuntime(1429): java.lang.StackOverflowError
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2758)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:2759)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView$HandleView.isPositionVisible(TextView.java:8228)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView$HandleView.moveTo(TextView.java:8245)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView$HandleView.positionAtCursor(TextView.java:8340)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView$InsertionPointCursorController.updatePosition(TextView.java:8401)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView.updateCursorControllerPositions(TextView.java:4292)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.TextView.onDraw(TextView.java:4281)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6986)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6989)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6989)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:7093)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.FrameLayout.draw(FrameLayout.java:361)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.ScrollView.draw(ScrollView.java:1421)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6989)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6989)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.View.draw(View.java:6989)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.widget.FrameLayout.draw(FrameLayout.java:361)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
06-13 07:42:23.399: E/AndroidRuntime(1429):     at android.view.Vi

多くの新しいデバイス、Nexus、HTC などでこれをテストしましたが、問題はありません。ただし、これを古いデバイスでテストしたところ、Sony Ericson Mini Pro 2 でこのエラーが発生しました。このアプリが古いデバイスでクラッシュしないようにしたいのですが、現在アプリは 2.3.3+ をサポートしています

古いデバイスがクラッシュする原因となっているこの再帰呼び出しが何であるかについて、誰か考えがありますか? とにかくこれを防ぐためにありますか。

アドバイスをいただければ幸いです。

4

1 に答える 1