记Fragment的一些尝试失败

本来打算是按照郭神的《第一行代码》的Fragment部分照着敲敲,但是我寻思着,我是大好青年呐,怎么能这么不动脑子地生搬硬套?遇到问题了怎么举一反三?于是乎我就开始了自己的尝试

刚开始我的想法是这样:
竖屏的时候就只是一个简单的单列列表,切换到横屏的时候就显示左侧是单列列表,右侧就是每一个item里面的详细内容。
但是我还是有点懒,就做一下郭神第一行代码的进阶版的demo把

但是这样要攻克的难点就多了起来,具体的几个知识点下面罗列一下:

  1. 我想要更多的尝试和搞清楚FragmentManager里面的详细内容,不能止步于使用简单的replace
  2. 判断横竖屏状态来设置布局的问题
  3. 横竖屏切换后导致Fragment重新加载的问题
  4. 点击Button后右侧Fragment切换问题

搁置得挺久了,真不好意思,还是得学习。

1. Fragment的管理问题

Fragment的管理类似于将Fragment放进一个栈里面,这样FragmentTraction的使用就比较容易理解。需要注意的就只有replace()这个方法,replace()的时候,tractoin会将栈中的Fragment全部移除,然后再将你需要的Fragment添加进去。推荐的用法是使用add之后使用show()和hide()方法来进行Fragment的展示。

1.1 Fragment的UI重复问题

刚开始我将FragmentTestActivity的xml文件中,fragment的部分就直接使用系统自带的一个View控件-----<fragment 。但是我在这个fragment里面只放置了一个button,但是运行的时候却出现2个button,而且这一个Fragment进行了2次onCreate()和onCreateView()。我目前的解决办法是:不使用<fragment View控件,而是使用了一个FrameLayout控件代替,这样就解决了,虽然具体原因我仍旧不是很清楚,但是先在这里记录一下。

2. 横竖屏切换和判断的问题

我还是使用Configuration和设置android:configChanges属性来进行横竖屏切换后不同布局的展示和横竖屏状态的判断。
具体内容看这里

3. 在一个Activity中的一个Fragment中的一个Button的点击事件的问题

因为这个button并不是在这个Activity所绑定的xmml文件当中,所以我如果在这个Activity当中初始化(即finViewById)并且设置点击事件的话,程序会崩溃,并报错空对象。(据我判断,大致是这么个原因)。所以,这里我的button的点击事件会放在这个Fragment的java代码当中,而且不能放在onCreateView()中(这里只是进行rootView的初始化),而是应该放在onActivityCreate()方法当中。

问题大概就是这些,详细代码请看下面
请参看activity / item_activity / fragment 当中的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值