48

子(ルートではない)要素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の子としてどのように機能しますか?

4

2 に答える 2

141

問題が解決しました!

私が電話したのでそれは起こったLayoutInflater.inflate([subViewOfViewPager], [ParentOfViewPager])

そのはず:

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

その他の言葉:

これは、2番目のパラメーターを使用してインフレートを呼び出したときに、指定されたViewGroupのサブ子としてビューを挿入してから、このビューをViewPagerに追加しようとしたために発生しました。ビューには、親ViewGroup要素を1つだけ含めることができます。これを回避するために、3番目のパラメーターはattachToRootfalseに設定されます。

于 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 に答える