あい、メモです。
ListView使ってて古いAPIなんかの場合はリップルさせたくないけど、
Android5以上ならリップルさせる際に軽く面倒だったのでメモ。

リップル自体をさせるのは以下のようにdrawble-v21フォルダ内にxml入れればできるす。

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
  android:color="@color/list_primary_ripple"> 
   <item android:id="@android:id/mask" android:drawable="@color/list_primary_pressed"/>
</ripple>

最初のカラー部分がプレス時の色で、そのあとid/maskで設定したものが広がる感じ。
*個人的な感じでいうと今まで使っていたプレス時の色をそのまま使うとリップルした時に濃く感じるので、別でちょっと薄めの色を用意していれたほうが個人的にはいいと思いましたよ。


んで、drawbleとdrawble-v21で同じxml名称にしてさぁListViewのandroid:listSelectorに入れよう!
うん、正しく動きません。。。

んではリストアイテム側(Adapter)のrootなんかのbackgroundではどうでしょう。
だめ。。。

正確には最初は動くんだけど次は動かなかったりとか色々不都合が。
調べるとListViewのパラメーターのandroid:drawSelectorOnTopをtrueにして、android:listSelectorで設定すればよいとかなんとか。

要はタッチ周りがごちゃっててうまくいってないみたいからセレクターを一番上に表示しちゃえってこと。

やってみると確かにできる。

んで、できるけどこいつアイテムより上に表示されるので背景に色が付いていると、まぁ背景に塗りつぶされアイテムが何も見えない。
v21以下だとまぁリップルしないという事なのでまぁ何も見えなくなる。この方法もだめ。

むむむ。。。
個人的にはXML内で完結したいんですが。。

んで考えた方法はListViewのセレクターもアイテム側の背景も使う方法。

まずカラー定義しておいてセレクターを用意

・カラー定義
■res/colors.xml
<resources>   
    <color name="list_primary">#FAFAFA</color> 
    <color name="list_primary_pressed">#e0e0e0</color>
    <color name="list_primary_ripple">#bdbdbd</color>
</resources>


・セレクター
■drawble/list_selector.xml *v21以下はリップはいらないので透明化
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/transparent"  />
</selector>
*よく考えたらこいつselectorタグいらない。。。
サンプルが上記になってるのでこのまま記載します。


■drawble/list_item_selector.xml *こいつはプレス
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_window_focused="false" android:drawable="@color/list_primary" />
 <item android:state_focused="true"  android:state_enabled="false"
                              android:state_pressed="true" android:drawable="@color/list_primary" /> 
 <item android:state_focused="true"  android:state_enabled="false"
                              android:drawable="@color/list_primary" />   
 <item android:state_focused="true"  android:state_pressed="true"
                              android:drawable="@color/list_primary_pressed" />   
 <item android:state_focused="false" android:state_pressed="true"
                              android:drawable="@color/list_primary_pressed" />   
 <item android:state_focused="true"  android:drawable="@color/list_primary" />
</selector>

■drawble-v21/list_selector.xml *こいつがリップル
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="@color/list_primary_ripple">   
    <item android:id="@android:id/mask" android:drawable="@color/list_primary_pressed"/>
</ripple>

■drawble-v21/list_item_selector.xml *アイテムに背景色があれば色を定義
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
     <item android:drawable="@color/list_primary" />
</selector>


・各Viewに実装
■ListViewは以下に設定。
<ListView
    android:drawSelectorOnTop="true"
    android:listSelector="@drawable/list_selector" 
    <!-- そのほかの設定-->
/>

■アイテム側は以下に設定。
ルートに以下の背景をつける。
android:background="@drawable/list_item_selector" 


これでリップルの振り分けできると思います。
ExpandableListViewとかも同じ方法でOK。

なんだかんだでまだListViewって出番あると思うこのごろです。
ちなみにlayoutフォルダをApiで切り分けてしまえばこんなことしなくても解決できるんですがね。
場合によってコストがかかるので今回はこうゆう方向で。

サンプルは以下に配置(appcompatが必要です)。
https://drive.google.com/file/d/0B_niJgzazrXxelEtQmpkS1JtS1E/view?usp=sharing


ちょっと今回のListView以外の余分なものがたくさん入ってますが気にしないでください。

一応スワイプで消えるのとSwipeRefreshつけてます。いずれもフォークしてますので正規品とちょっと違うかも。。。
また、メニューを押してみるとEditViewとかのWidgetsでますが一応API8まではLoliPopベースの見た目にしてます(SeekBarとプログレス以外)。
あとExpandableListViewは以下のAnimatedExpandableListViewをこちらもフォークして使ってます。
ここらへん気になった方はresフォルダ内のものを見てみてください。

AnimatedExpandableListView


誰かの助けになれば(・ω・)ダレモミナイヨ
ではでは。