关于Fragment使用的教程在网上有很多了,但是关于V4包中的Fragment的讲解却很少,有的那些大拿贴出来的帖子在细节方面讲解的也不是很详细,今天我历尽千辛万苦,最后终于完成了V4.Fragment的界面切换操作。接下来给大家分享一下细节。
主类的XML文件:
这里要注意一下,要写FrameLayout,之前我写的是Frament,结果一直在报错,不知道是不是我的问题,如果错误解决不了可以尝试一下这个方法。
然后是其他界面的XML文件,基本千篇一律:
在.java文件中也没有写太多的东西:
V4包,要记得导包一定要正确。
接下来就是正文啦:
、
各位一定要记得啊,血与泪的教训啊,因为这几个包我浪费了一个小时啊。
接下来就是展示真正的技术了:
这只是很简单的一个页面切换操作,但是短短的一段代码我弄了整整半天时间,只能怪自己太菜。以后还要努力学习。
接下来讲一些细节的地方:
这段代码中的ft,也就是FragmentManage,用于实现管理Activity中的fragment,当fragment发生变化时,ft就会将事务提交给Activity去处理,所以最后一定要执行commit();而在这段代码中ft数不可以放到点击事件外的,如果ft放入Oncreate中去时,它只会创建一次,而不会多次创建,在点击事件结束的时候它提交了事务,再次触发点击事件之后并没有新建ft,这时候就会出现空指针异常的情况。所以ft是需要多次创建的。
而关于这一段:
在百度上有一些帖子上面写的是
我多次尝试无果,也可能是我学艺不精,只能推荐大家如果被阻挡在了第二个方法上面,不妨尝试一下第一个方法。
最后就说一下容易马虎出的错吧:
这个.commit()方法是要else外面,点击事件之内。
以上就是我遇到的一些错误,可能很多地方错误都是微不足道的,但是越是低级的错误越容易忽略。