2

私は自分の状況を説明しようとします:

私はMyFragment extends Fragmentオーバーライドして持っていますonCreateView()

MyFragment.java

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.my_fragment, null);
        //some manipulation with view
        return view;

my_fragment.xml

<LinearLayout
       .....
  >
  <com.example.widgets.MyMapWidget
                   android:id="@+id/my_map"
                   android:layout_width="match_parent"
                   android:layout_height="300dp"
                   />
 </LinearLayout>

MyMapWidget.java

public class MyMapWidget extends LinearLayout {

  public MyMapWidget(final Context context, AttributeSet attrs) {
        super(context, attrs);
       ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.widget_map, this, true);
...
}

widget_map.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
             >
        <!-- Some another views-->
        <fragment xmlns:android="http://schemas.android.com/apk/res/android"
                  android:id="@+id/my_map_fragment"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  class="com.google.android.gms.maps.SupportMapFragment"
       />
       <!-- Some another views-->
</LinearLayout>

私が初めてショーをするときMyFragment- すべてがうまくいきます。しかし、その後、別のフラグメントを(バックスタックをクリーニングして)表示し、MyFragmentもう一度表示すると-得ましたInflate Exception

Stacktrase

android.view.InflateException: Binary XML file line #151: Error inflating class <unknown>
        at android.view.LayoutInflater.createView(LayoutInflater.java:606)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at `com.***.****.fragments.MyFragment.onCreateView(MyFragment.java:78)`

MyFragment.java(メソッドonCreateView)の 78 行目

View view = inflater.inflate(R.layout.my_fragment, null);

解決済みの問題MyMapWidgetからの削除。my_fragment.xmlしかし、いくつか質問があります。

  1. なぜそれが起こるのですか?
  2. このような地図を表示できますか?
  3. マップを自分の一部のように表示する別の方法を知っているFragmentでしょうか?

注: 同様の質問の回答を確認しましたが、状況を解決できません。

4

3 に答える 3