请解读一下Recyclerview的滚动问题

从控件设计的角度,Recyclerview一般会设计成这样,如果其高度为20,内容高度为50,内容高度大于Recyclerview高度,就会滚动,这是比较合理的方式。如果这样设计,实际上,Recyclerview的高度定为wrap_content,其Recyclerview高度等于内容高度,应该就不能滚动,实际测试,Recyclerview并非如此,即使设为wrap_content,照样滚动,麻烦解读一下这个现象。

Recyclerview滚动视图的行为实际上是由Recyclerview的布局管理器layoutManager决定的,在Recyclerview的布局管理器layoutManager中,有一个参数叫做scrollEnabled,它是用来指定Recyclerview是否可以滚动,如果Recyclerview的高度设置为wrap_content,而内容高度大于Recyclerview高度,则Recyclerview的布局管理器layoutManager会自动将scrollEnabled设置为true,从而使Recyclerview可以滚动。