现在的位置: 首页 > 综合 > 正文

android Fragment

2018年04月05日 ⁄ 综合 ⁄ 共 639字 ⁄ 字号 评论关闭

问题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(.....)之后。

抱歉!评论已关闭.