我正在尝试在Android应用中使用RecyclerView。 我将RecyclerView示例项目导入Android Studio,它运行正常。
我想让回收者视图中的项目在用户长时间按下时进行视觉反应。为此,我将视图的背景设置为selectableItemBackground
。我做了这些修改:
在text_row_item.xml中,我在FrameLayout标记上添加了这一行:
android:background="?android:attr/selectableItemBackground"
在CustomAdapter.java中,我在FrameLayout上添加了一个长按监听器:
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.d(TAG, "Element " + getPosition() + " long clicked.");
return true;
}
});
如果我在Lollipop仿真器上运行修改过的样本,当我长按回收器视图中的项目时,会得到很好的连锁效果。
但是如果我在KitKat模拟器上运行应用程序,我就无法获得KitKat附带的发光效果。当我长按它时,列表中的项目会变暗,并且长按聆听器会运行,但我预计在长时间按下时颜色会发光。
这是我正在发布的一个gif:
为什么selectableItemBackground
没有在KitKat上运行发光效果?如何让它在KitKat和Lollipop上运行?
答案 0 :(得分:3)
使用
android:background="?attr/selectableItemBackground"
android:backgroundTint="@android:color/holo_blue_bright"
android:clickable="true"
在你的recyleview行布局中
答案 1 :(得分:0)
当我使用android:Theme.Holo.Light.DarkActionBar
样式时,我遇到了同样的问题。将其更改为android:Theme.Material.Light.DarkActionBar
后,涟漪效应正常。
所以我唯一需要做的就是添加:
android:theme="@android:style/Theme.Material.Light.DarkActionBar
到Manifest.xml中的application
节点
或者,如果您使用自定义styles.xml
,则可以使用parent="android:Theme.Material.Light.DarkActionBar"