最近AndroidStudio 1.5系から2.xへのバージョンアップを行った際にCardviewとRecyclerviewの動作がSDKバージョンによって違い、ハマってなかなか苦労した際のメモ
正確にはAndroidStudioのバージョンの問題ではなく、
cardview、recyclerviewライブラリのバージョンの違いによる動作変更?のようで
layoutの階層が深いと描画順序が変わっていて、cardviewに指定したサイズが描画時に反映されないという事態になり、Studioのアップデートもしていたので問題の切り分けに時間がかかりました。。。
layout.xmlでは、recyclerviewは3階層目、その行にcardviewを指定していました。
(そんなに深い階層とは思えなかったんですがね。。。)
cardviewとrecyclerviewはgradleで以下のように指定してました。
app.gradle
dependencies {
compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
}
この設定だと1.5(正確にはsdkが23.x以下)では問題なく動き、2.x(正確にはsdkが24.x以上)では表示サイズがおかしくなりました。
以下の設定に変更したところ正常に動きました。
app.gradle
dependencies {
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
}
Android Nでlayout階層の描画順が変わったのか、、、
とりあえず動いたので、深くおっての調査はしていないです。
何か知っている人がいましたら教えてください。