RecyclerView setHasFixedSize(true)的作用、java.lang.UnsupportedOperationException 解决方案 (2017-07-07)

setHasFixedSize(true)

RecyclerView的尺寸在每次改变时,比如你加任何些东西。setHasFixedSize 的作用就是确保尺寸是通过用户输入从而确保RecyclerView的尺寸是一个常数。RecyclerView 的Item宽或者高不会变。每一个Item添加或者删除都不会变。如果你没有设置setHasFixedSized没有设置的代价将会是非常昂贵的。因为RecyclerView会需要而外计算每个item的size。

UnsupportedOperationException 解决方案

Exception in thread "main" java.lang.UnsupportedOperationException  
    at java.util.AbstractList.remove(AbstractList.java:144)  
    at java.util.AbstractList$Itr.remove(AbstractList.java:360)  
    at java.util.AbstractCollection.remove(AbstractCollection.java:252)  
    at com.test.test01.Test.main(Test.java:27)  

如下代码报上述错误(按我的理解应该是创建的数组本身是固定的个数的,所以不给直接操作remove):

String testStr = "1,3,0,5,6";  
List<String> test = Arrays.asList(testStr.split(","));  
test.remove("1");  

解决方法:

String testStr = "1,3,0,5,6";  
List<String> test = new ArrayList<String>();  
for(String t : testStr.split(",")){  
        test.add(t);  
}  
test.remove("1");  

链接:上述报错比较有道理的说明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容