如何在Android ListView中禁用波纹效果?已在iOS实现
如何在NativeScript ListView的Android端禁用波纹效果
当然可以实现!你已经在iOS端通过修改UITableViewCell的selectionStyle完成了禁用选择效果,Android端也有对应的原生API可以实现同样的需求。
具体实现代码
你只需要在onItemLoading的Android分支中,获取原生的列表项视图,然后禁用其选择波纹效果即可:
onItemLoading(args: any) { if (ios) { const cell = args.ios; cell.selectionStyle = UITableViewCellSelectionStyle.UITableViewCellSelectionStyleNone; } else if (android) { // 获取Android原生的列表项视图 const nativeView = args.android; // 设置选择器为透明,移除波纹效果 nativeView.setSelector(android.R.color.transparent); // 针对Android 6.0及以上版本,额外移除前景层的波纹 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { nativeView.setForeground(null); } } }
补充说明
setSelector(android.R.color.transparent):这会替换默认的波纹选择器为透明,从根源上移除点击时的波纹效果。- 针对Android 6.0+的
setForeground(null):部分新版本的Android控件会通过foreground属性实现波纹,加上这一步可以确保完全禁用。
这样修改后,你的ListView在Android端点击时就不会再显示波纹效果了,和iOS端的行为保持一致。
内容的提问来源于stack exchange,提问作者Roman Šimr
相关产品推荐
相关产品推荐

