Android render
using Android.Content;
using Android.Graphics;
using Android.Graphics.Drawables;
using Android.Views;
using Android.Widget;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Controls.Compatibility.Platform.Android;
[assembly: ExportRenderer(typeof(ViewCell), typeof(NoSelectViewCellRenderer))]
namespace YourApp.Platforms.Android
{
public class NoSelectViewCellRenderer : ViewCellRenderer
{
protected override View GetCellCore(Cell item, View convertView, ViewGroup parent, Context context)
{
var cell = base.GetCellCore(item, convertView, parent, context);
if (cell != null)
{
// Disable row interaction states
cell.Focusable = false;
cell.FocusableInTouchMode = false;
cell.Clickable = false;
cell.LongClickable = false;
// Remove press elevation animation (Material themes)
cell.StateListAnimator = null;
// Force transparent background (avoid pressed tint)
cell.Background = new ColorDrawable(Color.Transparent);
// Clear ripple foreground (Foreground is API 23+)
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
cell.Foreground = null;
if (parent is ListView listView)
{
// Remove selector highlight completely
listView.SetSelector(new ColorDrawable(Color.Transparent));
listView.SetDrawSelectorOnTop(false);
listView.CacheColorHint = Color.Transparent;
listView.ChoiceMode = ChoiceMode.None;
}
}
return cell;
}
}
}
XAML change (so the image tap still works without triggering native pressed state)
If the Image is the only thing being tapped, Android may still trigger the row pressed state. The easiest approach is: make the Image non-interactive and handle the tap on the c