android Fragment

问题1:

 FragmentTransaction replace (int containerViewId, Fragment fragment)
为何老是不成功

A1:根据api doc。containerViewId应该是一个ViewGroup。所以,请确定你的第一个变量是传入一个ViewGroup(例如LinearLayout,RelativeLayout,FrameLayout等等,而不能是TextView,ImageView等等)

问题2:

在主activity中,通过findViewById来获得Fragment的layout中的一个控件,总是获取失败,获得NULL?

A2:

请确保Fragment的OnCreateView总是在你在主activity中调用的时候之前。因为Fragment的OnCreateView函数,是当系统要画这个Fragment UI的时候被调用,这个函数返回值是一个view,系统拿这个view来画UI。而,一般都是在OnCreateView中,通过inflater来讲xml文件inflate成一个view再返回。所以,如果在主activty中,你要调用findViewById时,有时就会返回NULL,因为此时fragment的layout还未填充成view,你当然会得到一个NULL。所以,可以考虑在OnCreawteView中调用findViewById来操作具体控件。不过记得,要在代码inflater.inflate(.....)之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值