我正在将一个Activity更改为Fragment以在Scrollable Tab Activity中使用。但我得到这个例外我加载这个片段:
FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #17: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.zhensydow.demo.MainMenuFragment.onCreateView(MainMenuFragment.java:43)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
....
加载的(简化的)xml是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
... >
<fragment <<---- LINE #17
android:id="@+id/mlist"
android:name="com.zhensydow.demo.MListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@android:layout/mcontent" />
<FrameLayout ... />
</LinearLayout>
错误是由此代码引起的:
public class MainMenuFragment extends Fragment implements
MenuListFragment.Callbacks {
// ...
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
super.onCreateView(inflater, container, savedInstanceState);
LinearLayout ll = (LinearLayout) inflater.inflate(
R.layout.activity_main_menu, container, false);
return ll;
}
// ...
}
错误发生在片段上,我认为这是因为旧活动在他内部加载了两个片段。
我该如何解决?
更新:添加了完整的fragmen xml数据
答案 0 :(得分:1)
我怀疑你的Fragment包含一些像this one这样的代码,要求你的Activity实现一个回调接口,而你的Activity没有实现那个接口。
答案 1 :(得分:0)
fragment
标记必须同时包含名称和ID。