android–Xamarin在TabbedPage中的ListView中表单滑块无法正确滑动

android–Xamarin在TabbedPage中的ListView中表单滑块无法正确滑动,第1张

概述我有一个DataTemplate,它将一个滑块放在TabbedPage中的ListView中.在Android上,滑块无法正确移动,从左向右滑动可激活TabbedPage滑动功能.如果滑块位于ListView外部,则它可以正常工作.如何防止滑块的父控件处理拖动手势?方法ViewParent.requestDisallowInterceptTouchEvent(boolean

我有一个DataTemplate,它将一个滑块放在TabbedPage中的ListVIEw中.在Android上,滑块无法正确移动,从左向右滑动可激活TabbedPage滑动功能.如果滑块位于ListVIEw外部,则它可以正常工作.如何防止滑块的父控件处理拖动手势?

方法VIEwParent.requestdisallowIntercepttouchEvent(boolean)可能有帮助,但是我会做哪个渲染器等?

Video of issue with the slider

解决方法:

创建一个SlIDerRenderer,然后在dispatchtouchEvent(MotionEvent e)中调用RequestdisallowIntercepttouchEvent(boolean),它可以解决这个问题,这里是我的代码:

主页:

        var tabsXaml = new TabbedPage { Title = "Working with ListVIEw" };        tabsXaml.Children.Add(new BasicListXaml { Title = "Basic", Icon = "icon.png" } );        tabsXaml.Children.Add(new JustVIEw { Title = "JustVIEw", Icon = "icon.png" });        tabsXaml.Children.Add(new UnevenRowsXaml { Title = "UnevenX", Icon = "icon.png" });        tabsXaml.Children.Add(new SlIDerPage { Title = "SlIDerPage", Icon = "icon.png" });        MainPage = tabsXaml;

TabbedPage中的SecondPage:

<ContentPage.Content>    <local:MyListVIEw x:name="ListVIEw" ItemSelected="OnItemSelected">        <local:MyListVIEw.ItemTemplate>            <DataTemplate>                <VIEwCell>                    <StackLayout>                        <local:MySlIDer HorizontalOptions="Fill"/>                    </StackLayout>                </VIEwCell>            </DataTemplate>        </local:MyListVIEw.ItemTemplate>    </local:MyListVIEw></ContentPage.Content>

SlIDererRenderer:

   public overrIDe bool dispatchtouchEvent(MotionEvent e)    {        switch (e.Action)        {            case MotionEventActions.Down:                Parent.Parent.Parent.Parent.Parent.Parent.Parent.RequestdisallowIntercepttouchEvent(true);                                    break;            case MotionEventActions.Move:                 //This is the core of the problem!!!                Parent.Parent.Parent.Parent.Parent.Parent.Parent.RequestdisallowIntercepttouchEvent(true);                break;            case MotionEventActions.Up:                break;            default:                break;        }        return base.dispatchtouchEvent(e);    }

您必须调用RequestdisallowIntercepttouchEvent(true)方法.我的代码中的Parent.Parent.Parent.Parent.Parent.Parent.Parent意味着Xamarin.Forms.Platform.AndroID.PageRenderer,SlIDer在video中无法正常工作的原因是页面(在我的代码中是JustVIEw) )阻止滑块处理拖动手势.

总结

以上是内存溢出为你收集整理的android – Xamarin在TabbedPage中的ListView中表单滑块无法正确滑动全部内容,希望文章能够帮你解决android – Xamarin在TabbedPage中的ListView中表单滑块无法正确滑动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存