java.lang.StackOverflowError:android.view.View.isLayoutDirectionInherited

时间:2013-08-07 12:49:41

标签: android view stack-overflow

您好我在尝试在布局中添加视图时收到StackOverflow错误。

代码:

parentOfAllInGMT.addView(layoutInflater.inflate(
        R.layout.layout_dstbutton, parentOfAllInGMT, true));

这里parentOfAllInGMT是一个线性布局,我希望layout_dstbutton成为索引1的孩子。

在添加layout_dstbutton之前,我添加了

parentOfAllInGMT.addView(layoutInflater.inflate(
        R.layout.gmt_option_list_dst_on, null, false));

正在正确添加。

以下是logcat输出:

08-06 07:23:44.843: E/AndroidRuntime(19513): java.lang.StackOverflowError
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.View.isLayoutDirectionInherited(View.java:11756)
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:5379)
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:5380)
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:5380)
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:5380)
08-06 07:23:44.843: E/AndroidRuntime(19513):    at android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:5380)

1 个答案:

答案 0 :(得分:4)

问题的根本原因是我正在采取的设计/方法。

我使用的gmt_option_list_dst_on有34个相对布局,在每个布局中我有5个视图。所以他们总结并总共创建了170个视图,这很可能是stackoverflow异常的原因。

所以我选择自定义列表视图而不是膨胀多个(170)视图。 Listview使我能够轻松处理事件,并且性能也得到了提升。