1

嗨,我在尝试在布局中添加视图时遇到 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)
4

1 回答 1

4

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

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

所以我选择一个自定义列表视图而不是膨胀多个(170)视图。Listview 让我可以轻松地处理事件,并且性能也得到了增强。

于 2013-09-23T09:45:38.587 回答