如何修复安卓中的'android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035)'错误



我有一个带有子元素RelativeLayout的布局,然后我创建ViewPager并将其作为Relative布局的子元素插入,所以它就像

+相对布局(根)

|

+--相对布局(子)

|

+----ViewPager

现在-一切都好。

但后来我尝试用自己的布局将一些视图项目添加到ViewPager中,然后我得到了错误

10-12 15:32:46.777: E/AndroidRuntime(6031): FATAL EXCEPTION: main
10-12 15:32:46.777: E/AndroidRuntime(6031): java.lang.StackOverflowError
10-12 15:32:46.777: E/AndroidRuntime(6031):     at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035)

作为亲戚的孩子,ViewPager将如何让我拥有自己的孩子视图?

问题解决了!

发生这种情况是因为我呼叫LayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager])

应该是:

LayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager], false))

更多单词:

之所以会发生这种情况,是因为当使用第二个参数调用inflate时,视图插入作为给定ViewGroup的子级,然后我尝试将此视图添加到ViewPager中。视图只能有一个Parent ViewGroup元素。第三个参数将attachToRoot设置为false以避免这种情况。

答案的简化版本

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.cab_listing, container,false);
return view;
}

最新更新