关于Recyclerview自适应item宽高

在项目中遇到RecyclerView不再自适应Item宽高,原来是由于Recyclerview库版本过低。升级到25版本后解决了问题,但在升级过程中遇到了因版本不匹配导致的多个错误,包括Error inflating class、NoSuchMethodError等。通过逐步排查和版本调整,最终成功解决问题。

今天发现原来的项目中一个Recyclerview,本来是自适应item宽高的,现在却占满屏幕,多次调试布局无果,之后查找发现,Recyclerview在后来的版本中有升级,源代码中已经做了自适应处理了,而我引入的Recyclerview库版本依然是23.0.1的,于是进行升级

我app的gradle里的版本设置是提出来到外面的根gradle下的,这是它们的设置

ext{
    compileSdkVersion = 23
    buildToolsVersion = "25.0.2"
    support_library_version = "23.2.1"
}

网上有人说只要升级到23.2.1以上就行,那很简单  support_library_version改成23.2.1就好了

呵呵,改完运行报错

Error inflating class android.support.design.widget.CollapsingToolbarLayout

Caused by: android.view.InflateException: Binary XML file line #73: Error inflating class android.support.design.widget.CollapsingToolbarLayout

Caused by: java.lang.reflect.InvocationTargetException

........
........

Caused by: java.lang.NoSuchMethodError: No static method setLayoutDirection(Landroid/graphics/drawable/Drawable;I)V in class Landroid/support/v4/graphics/drawable/DrawableCompat; or its super classes (declaration of 'android.support.v4.graphics.drawable.DrawableCompat' appears in /data/app/com.miuhouse.yourcompany.daycare-2/split_lib_dependencies_apk.apk:classes5.dex)

网上似乎没有详细解释,但看上去应该还是版本的问题

stackoverflow中有回答建议加上这句话

compile (‘com.android.support:support-v4:23.4.0‘){
  force = true;
}

要是有什么卵用的话也没什么好说的了

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/os/BuildCompat;

............

............

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.os.BuildCompat" on path: DexPathList.................


找不到类 这就错得更离谱了,查了半天原因查不到,最后一怒之下,support_library_version直接改成25

特么就好了,Recyclerview也自适应了,摔










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值