私は自分の状況を説明しようとします:
私は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
しかし、いくつか質問があります。
- なぜそれが起こるのですか?
- このような地図を表示できますか?
- マップを自分の一部のように表示する別の方法を知っている
Fragment
でしょうか?
注: 同様の質問の回答を確認しましたが、状況を解決できません。