子(ルートとしてではなく)要素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は、havin独自の子ビューを持つRelativeLayoutの子としてどのようにして私を扱いますか?
問題が解決しました!
LayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager])
を呼び出したために発生しました
そのはず:
LayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager], false))
その他の単語:
これは、2番目のパラメーターを使用してinflateを呼び出すと、ビューが特定のViewGroupのサブ子として挿入され、このビューをViewPagerに追加しようとしたために発生しました。ビューは、親ViewGroup要素を1つだけ持つことができます。 3番目のパラメーターは、これを回避するためにattachToRoot
をfalseに設定します。
answer の簡略版
@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;
}