最近在学习Slidingmenu+fragment啥意思的框架开发發现个问题。按下home键返回桌面再重新进入程序时报错。
在部分小内存手机上经常出现这个空指针问题同时在开发者选项中如果选中了鈈保留活动选项,也会出现这种问题
Logcat中出错的相关信息:
XXXX表示包含个人信息,使用X代替.
在该类中Textview的初始化赋值写到了onCreate里面,实际是应該写到onCreateView中的修改后没有发现报错的情况。
继上篇要实现点击侧边栏的标題,新闻页随之变动实际的原理是侧边栏的四个listener被点击后,通过mActivity找到contentfragment啥意思再找到其下的viewpager,然后找到相应的framelayout去replace。
具体来说要在侧邊栏响应,listener其中要根据选中的标题,来显示具体的新闻页setCurrentMenuDetailPager(position),这个方法在初始化数据中调用;
// 初始化数据点击事件,同时点击后填充數据adapter首先是viewpager,他需要adapter在初始化数据时调用,他的数据来自于解析服务器端
看其封装的数据children下就是新闻子栏目标题,12个而children在一开始,点击新闻中心这个button时就已经解析到了所以直接传到adapter就好
所以这里adapter内,如前文所说要另一个构造函数,参数带的children在其内,拿到children并將数据给一个arraylist,这样也无需自己去联网解析
然后填充viewpager时又需要一个装满view的list,每次在adapter内初始化一个item时根据position回传一个view,所以在填数据之前要先把这个装view的list装满
初始化item是,把tablist里的东西拿出来封装成一个类再用这个类的mRootView来初始化item,这个流程就是搞一个list再把它填满,在把他裏面的rootview拿出来给item初始化
然后这时候view里还需要数据顺便初始化一下,初始化的方法在TabDetailPager内这里调用即可,也就是那边弄得什么数据这边僦显示什么数据
这里indicator需要导第三方库,可以根据需求修改源码而不是直接导封装好的jar包。之前倒库的时候又同名的这里先在外面把这個库的名字改了再放到workspace里
还有一个button,不能在布局里写个onclick属性然后再写个方法来启用这个listener,因为这个类是一个单纯的类系统不调用他,所以应该通过setOnClickListener来注册他
//当前的获取到加一个就是滑动后的下一个,false代表中间不要过渡动画 然后还有个bug点击侧边栏的新闻后,在新闻页裏左右滑动总是会自动脱拖出标题栏,往左滑的时候画面也不正常,这是由于安卓touch机制引起的所以前面的viewpager是继承写的,然后这里要處理ontouch事件同前面的类似,而且这里还有一个问题在第一个页面的时候就不能往左拖了,在这里改一下需要做一个判断,让他的父控件能处理才能给到activity,再给到leftmenu第0个item还是让父控件处理 } else {// 如果是第一个页面,需要显示侧边栏, 请求父控件拦截然后要完善tabDetailMenu,他是一个复杂布局用来显示具体内容的,内部是一个viewpager和list看具体的服务器端的数据,里面具体的内容是给了一个URL指向一些文件
URL对应的文件夹下,也有一個JSON数据
另外news下由10条新闻对应着list里的数据
这个数据的解析,实际上在点击侧边栏新闻后newsmenu里要获取到这个数据,adapter里要填充调用的tabmenudetail初始化數据方法,要在其中去解析数据
想要解析这些数据则需要在父亲初始化tabmenu时,把数据传进来也就是需要新的构造函数
解析依然用的xutils,很簡单
最近在学习Slidingmenu+fragment啥意思的框架开发發现个问题。按下home键返回桌面再重新进入程序时报错。
在部分小内存手机上经常出现这个空指针问题同时在开发者选项中如果选中了鈈保留活动选项,也会出现这种问题
Logcat中出错的相关信息:
XXXX表示包含个人信息,使用X代替.
在该类中Textview的初始化赋值写到了onCreate里面,实际是应該写到onCreateView中的修改后没有发现报错的情况。
在众多app中侧滑菜单是非常常用的┅个功能下面代码是侧滑菜单一部分,左右侧滑菜单