Tre*_*ter 24 c# xaml android listview xamarin.forms
我有一个ListView与自定义ViewCell显示文章.但是,当您选择项目时,它会显示材质设计纹波/选择效果.
XAML:
<ListView HasUnevenRows="True" ItemsSource="{Binding NewsArticles}" IsPullToRefreshEnabled="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="10">
<Label Text="{Binding Title}" HorizontalOptions="Center" FontAttributes="Bold" />
<Image Source="{Binding ImageUrl}" IsVisible="{Binding HasImage}" />
<Label Text="{Binding Content}"></Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
如何消除涟漪效应?
Tre*_*ter 18
因此,经过很长一段时间我们发现它,您可以使用自定义渲染器完成它.这是怎么回事
首先,创建一个名为no_selector.xml的文件并将其放在Resources/layouts文件夹中(包装属性必须设置为AndroidResource).
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@android:color/transparent"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
之后,为ListView组件创建自定义渲染器,
[assembly: ExportRenderer (typeof(ListView), typeof(NoRippleListViewRenderer))]
namespace Your.Own.Namespace
{
public class NoRippleListViewRenderer : ListViewRenderer
{
protected override void OnElementChanged (ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged (e);
Control.SetSelector (Resource.Layout.no_selector);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果no_selector找不到该文件重建您的项目!
请注意这样可以消除应用程序中所有 ListView 的纹波.如果您只希望它定位一对,您可以更改ExportRenderer属性的第一个类型(这需要您创建一个扩展ListView的单独类).
https://gist.github.com/awatertrevi/d83787dbbf3de6ef0e0a344169d3c2fa
| 归档时间: |
|
| 查看次数: |
6641 次 |
| 最近记录: |