这两天吧fragment写了几遍,,,说说感受,android
个人列表中的listView一直,没有初始化,就当作参数传给了listView的Adapter中因此程序一直不运行.报错can't find provider info for ..blabla.(这实际上是我胡乱声明变量形成的错误,在方法内声明了list变量,致使全局变量List没有初始化.)ide
对于fragment,其实就是三部分:布局
.第一部分是你要为这个fragment写一个layout布局.也就是它的面目是啥样的你先设计出来.测试
第二,你要创建一个***fragmen继承自fragment.这里是你写这个页面中各类逻辑的地方,你要初始化出页面显示内容,写出你可能要用的方法,等等,这里 有使用view = inflater.inflate(R.layout.news_content_frag, container, false);来得到view实例做为返回值这是oncreatView方法的重写.使用此view就能够调用findViewbyId方法来写逻辑了. spa
第三, 你想一想你有了fragment你该怎么用,你要把他放到另外一个layout中,你须要创建一个fragment布局文件.把此fragment类的全地址以Android:name参数传入.这就表明此layout和fragment类attch再一块儿了....可是你依然是不能用的为啥??设计
第四.(有第四,别问我,写的时候忽然感受少点啥,)你为了使用fragment创建了一个android.xml文件也就是layout文件,你必须的写一个类来匹配这个布局吧,因此你要再写一个**fragmentActivity类继承自activity,你把这个类写出来,这里你要找到你fragment布局中控件须要的参数你都要传入.....你得到fragment的实例的办法还记得吗,getFragmentmannager().findFragmentById()从而得到fragment实例就能用其中方法(这是要问李二蛋的个人想法:)通常来讲你要写出方法来吧数据填充到控件中,可是假如我不想写方法呢,我是否是能够新创建View view = Layoutinflater.from(getContext()).infalate();方法得到.从而能够设计fragment的控件,\指针
对于标黄的话,我测试了,根本不用什么创建view,我傻了,由于你原本就在activity里面一切控件能够直接用啊,直接写就好,可是有一点须要注意就是,假如这个fragment没有和activity关联在一块儿的话,你找的就是null,会报空指针错误.orm
关于限定符,layout-sw600dp的用法你要知道才行啊,其余的没有深看xml
大小
small 提供给小屏幕设备的资源
normal 提供给中等屏幕设备的资源
large 提供给大屏幕设备的资源
xlarge 提供给超大屏幕设备的资源
分辨率
ldpi 提供给低分辨率设备的资源(120dpi 如下)
mdpi 提供给中等分辨率设备的资源(120dpi 到160dpi)
hdpi 提供给高分辨率设备的资源(160dpi 到240dpi)
xhdpi 提供给超高分辨率设备的资源(240dpi 到320dpi)
方向
land 提供给横屏设备的资源
port 提供给竖屏设备的资源继承