Xamarin 框架在点击时变为透明
我正在处理一个带有ListView的Xamarin.Forms项目,每个项目都有一个白色背景的框架。我的问题是,我最近注意到,当我点击该项目时,它会使框架的背景变白。它仍然显示所有其他对象,但帧变为透明 这个框架很简单Xamarin 框架在点击时变为透明,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,我正在处理一个带有ListView的Xamarin.Forms项目,每个项目都有一个白色背景的框架。我的问题是,我最近注意到,当我点击该项目时,它会使框架的背景变白。它仍然显示所有其他对象,但帧变为透明 这个框架很简单 <Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 5" BackgroundColor="White">...</Frame> 。。。 为了可读性,将上述评论答案提升为真实答案: 您看到的行
<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 5" BackgroundColor="White">...</Frame>
。。。
为了可读性,将上述评论答案提升为真实答案:
您看到的行为是特定于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"));
我写了一篇关于完整解决方案的短文
或者,如果您想保持选择项的能力,一个可能的修复方法是在代码中添加一个ItemTapped处理程序并将其清空
MyListView.SelectedItem = null;
我很确定这不是框架,但是你的listview选中的项目可以尝试在本机列表视图中删除选中的项目背景吗?我最近用特效解决了这个问题,并做了一个快速的总结。也许这会有帮助@乔干得很好!