我正在使用ListView处理Xamarin.Forms项目,每个项目都有一个带有白色背景的Frame。我的问题是我最近注意到当我点击项目时它使Frame的背景变白。它仍然显示所有其他对象,但框架变得透明。
框架只是
<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 5" BackgroundColor="White">...</Frame>
答案 0 :(得分:1)
促进上述评论 - 为了可读性而回答真实答案:
您看到的行为特定于iOS。您可以通过使用效果覆盖默认行为来解决此问题,如下所示:
[assembly: ResolutionGroupName("MyEffects")]
[assembly: ExportEffect(typeof(ListViewHighlightEffect), nameof(ListViewHighlightEffect))]
namespace MyProject.iOS.Effects
{
public class ListViewHighlightEffect : PlatformEffect
{
protected override void OnAttached()
{
var listView = (UIKit.UITableView)Control;
listView.AllowsSelection = false;
}
protected override void OnDetached()
{
}
}
}
然后,您可以将它应用于您的视图代码隐藏:
MyListView.Effects.Add(Effect.Resolve($"MyEffects.ListViewHighlightEffect"));
我对完整的解决方案here
进行了简短的撰写或者,如果你想保持选择项目的能力,一个可能的解决方法是在你的代码中添加一个ItemTapped处理程序并将其清空
MyListView.SelectedItem = null;