.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
50 个问题
大家好。Maui 17.9 预览版 5 和 android 34。我试图将滚动更改为 neither,myscroll.orientation = scrollorientation.neither,但这不起作用。请对此提供帮助,非常感谢。 此问题总结整理于:Maui android change scrolling to neither not working - Microsoft Q&A
你好,
这是一个GitHub中的已知问题:[Android] ScrollView Orientation=Neither not working · Issue #18418 · dotnet/maui · GitHub
对于此问题,您可以使用 Android 的原生方法在 ScrollView 中禁用或启用滚动。请参考以下步骤。
步骤 1。在 Android 文件夹下为 ScrollView 创建一个触摸监听器。
internal class MyTouchListener : Java.Lang.Object, IOnTouchListener
{
public AndroidX.Core.Widget.NestedScrollView NestedScroView { get; set; }
public bool ScrollEnabled { get; set; }
public MyTouchListener(bool enabled, NestedScrollView view)
{
NestedScroView = view;
ScrollEnabled = enabled;
}
public bool OnTouch(global::Android.Views.View? v, MotionEvent? e)
{
if (ScrollEnabled==true)
{
return NestedScroView.OnTouchEvent(e);
}
else
{
return true; // If it returns true directly, ScrollView deactivates scrolling behavior.
}
}
}
第2步。通过 Handler 设置禁用或启用滚动。
<ScrollView x:Name="scroll">
// disable scrolling
scroll.HandlerChanged += (sender, e) =>
{
#if ANDROID
var s = scroll.Handler.PlatformView as AndroidX.Core.Widget.NestedScrollView;
if (s != null)
{
s.SetOnTouchListener(new MyTouchListener(false,s));
}
#endif
};
// enable scrolling
#if ANDROID
var s = scroll.Handler.PlatformView as AndroidX.Core.Widget.NestedScrollView;
if (s != null)
{
s.SetOnTouchListener(new MyTouchListener(true, s));
}
#endif
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。