Muti-Barrage
Muti-Barrage copied to clipboard
ArrayIndexOutOfBoundsException
//设置弹幕数据 List<BarrageData> dataList = new LinkedList<>(); for (int i = 0; i < content.length; i++) { dataList.add(new BarrageData(content[i], 0,i)); } mAdapter.addList(dataList);
这样添加数据会经常角标越界
异常日志 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at com.orient.tea.barragephoto.ui.BarrageView.getSpeed(BarrageView.java:314) at com.orient.tea.barragephoto.ui.BarrageView.addBarrageItem(BarrageView.java:263) at com.orient.tea.barragephoto.adapter.BarrageAdapter.createItemView(BarrageAdapter.java:101) at com.orient.tea.barragephoto.adapter.BarrageAdapter.access$500(BarrageAdapter.java:31) at com.orient.tea.barragephoto.adapter.BarrageAdapter$BarrageAdapterHandler.handleMessage(BarrageAdapter.java:275)
不好意思,现在才看到,是频繁添加数据才会出现吗?
你好,没有频繁添加数据,在初始化的时候直接for循环去添加的,后面没变
感谢提出,我等会儿测试测试。
嗯嗯,如果需要更多的代码我再贴出来,感谢大佬解惑
我猜你应该把数据初始化放入了Activity
的onCreate()
到onResume
之间,这个时候父布局的View可能还没有执行绘制过程(View的绘制过程需要时间),目前的做法是将数据初始化放在onWindowFocusChanged(boolean hasFocus)
方法中,我的Demo中也是这么做的
嗯嗯好的,谢谢,我去试试