如何在ListView中的ViewCell上添加材质设计波纹效果?

时间:2019-06-28 22:36:48

标签: c# android xamarin xamarin.forms

我正在制作需要菜单的Xamarin.Forms应用程序。我正在将ListView控件与ViewCells一起使用以提供此菜单。不幸的是,我希望我的应用程序是Material Design,因此,我希望ViewCell上产生涟漪触觉反馈。

这是一个新的Xamarin.Forms项目,其模板为Shell,是使用Visual Studio 2019 16.1.3版制作的。  由于缺少iOS设备,我正在Android上进行测试。

我尝试在ContentPage上使用属性Visual="Material",但这给了我一个例外

System.MissingMethodException: Method not found: Xamarin.Forms.SizeRequest Xamarin.Forms.Platform.Android.ButtonLayoutManager.GetDesiredSize(int,int)

ListView的代码(未经Shell模板编辑):

<ListView x:Name="ItemsListView"
                ItemsSource="{Binding Items}"
                VerticalOptions="FillAndExpand"
                HasUnevenRows="true"
                RefreshCommand="{Binding LoadItemsCommand}"
                IsPullToRefreshEnabled="true"
                IsRefreshing="{Binding IsBusy, Mode=OneWay}"
                CachingStrategy="RecycleElement"
                ItemSelected="OnItemSelected">
            <d:ListView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>First Item</x:String>
                    <x:String>Second Item</x:String>
                    <x:String>Third Item</x:String>
                    <x:String>Forth Item</x:String>
                    <x:String>Fifth Item</x:String>
                    <x:String>Sixth Item</x:String>
                </x:Array>
            </d:ListView.ItemsSource>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="10">
                            <Label Text="{Binding Text}" 
                                d:Text="{Binding .}"
                                LineBreakMode="NoWrap"
                                FontSize="16" />
                            <Label Text="{Binding Description}" 
                                d:Text="Item description"
                                LineBreakMode="NoWrap"
                                FontSize="13" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

我希望当我单击列表项(ViewCell)时会出现“材质设计”波纹效果,但是相反,它变为橙色,这似乎是ViewCell的默认行为。

我想要的波纹效果类似于此gif中的效果: ripple

0 个答案:

没有答案