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");
链接:上述报错比较有道理的说明