48

我有带有子元素(不是根)元素 RelativeLayout 的布局,然后我创建 ViewPager 并将其作为我的相对布局的子元素插入,所以就像

+相对布局(根)

|

+-- 相对布局(子)

|

+-- -- 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 将如何作为具有自己的子视图的 RelativeLayout 的子级?

4

2 回答 2

141

问题解决了!

这是因为我打电话LayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager])

它应该是:

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

更多的话:

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

于 2012-10-12T12:03:18.287 回答
2

简化版答案

@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;
}
于 2017-07-02T10:12:48.430 回答