加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Fragment 创建不了, XML 文件报错

发布时间:2020-12-16 06:30:20 所属栏目:百科 来源:网络整理
导读:碎片化 Fragment 已经在 Android 开发中越来越受到重视,能够匹配不同屏幕,经常的做法是配置小屏幕设备进入的 Activity 之后的 XML 文件,使其加载 Fragment ,这样,在 Fragment 里面写的代码,无论是大屏幕还是小屏幕能用到相同的功能。 比如在 Activity

碎片化 Fragment 已经在 Android 开发中越来越受到重视,能够匹配不同屏幕,经常的做法是配置小屏幕设备进入的 Activity 之后的 XML 文件,使其加载 Fragment ,这样,在 Fragment 里面写的代码,无论是大屏幕还是小屏幕能用到相同的功能。

比如在 Activity 文件下如此:

public class FirstActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_first);
	}

}

在相应的 XML 文件中添加这个组件:
<fragment 
        android:id="@+id/first_fragment"
        android:name="com.xxx.FirstFragment"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        />

同时需要创建一个继承自 Fragment 的类,放置所有你需要放置的代码:
public class FirstFragment extends Fragment{
	
}

但是!但是!运行会报错:

【Java.lang.RuntimeException: Unable to start Activity... Binary XML File...】

看到这里,第一个反应就是 XML 文件出错了。没错,当 XML 文件中的 "android:name=" 填错的时候会有这样的现象,可更容易被忽略的是,Fragment 代码下缺少了必要的东西,那就是复写的onCreateView 方法。没有这个方法,就不会创建 Fragment 与其有关的 XML 文件之间的联系,更不用说 Activity 的 XML 直接引用 Fragment 的 XML 文件了。

所以需要补上:

public class FirstFragment extends Fragment{

	@Override
	public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View view = inflater.inflate(R.layout.first_fragment,container,false);
		return view;
	}

	
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读