4系では問題なく表示されていたToggleButtonにかぶせたImageViewが、Lollipopで表示されないという問題がありました。
4系
ちなみにレイアウト構成はこんな感じ。FrameLayoutで単純に2枚のViewを重ねているだけです。
ImageViewの背景色を変更して確認してみたところ、Viewの重なり順(Z-Order)が逆になってしまっていて、ToggleButtonの下にImageViewが入ってしまっているようでした。
マテリアルデザインの影響で、ボタンは影が入るようになったため、前面に移動してしまっているようです。
Android – Buttonのelevationを設定する方法 – Qiita
で、奥行きを修正するために、ImageViewの方をtranslationZで2単位ほど手前に出せば良いらしい。
Android 5.0 – ProgressBar cannot be displayed over a Button – Stack Overflow
<ImageView
android:id=”@+id/image”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:contentDescription=”@null”
android:scaleType=”fitCenter”
android:translationZ=”2dp”
tools:ignore=”UnusedAttribute” />
で、解決しました。
あ、translationZはAPI Level 21からのアトリビュートなので、プロジェクトの方も設定が必要です。
試してませんが、stateListAnimatorでやる方が正しいかもしれません。
あと、ToggleButtonに限らず、Button系はこの現象が起きるようです。ボタンの上に何かを重ねている人は注意。