在android xamarin中禁用整个应用程序范围内的多点触控

xfb7svmp  于 2022-12-20  发布在  Android
关注(0)|答案(1)|浏览(164)

Xamarin论坛问题链接:https://forums.xamarin.com/discussion/60321/disabling-multitouch-across-the-appwide-in-android-xamarin#latest
有没有办法禁用Xamarin Android中的多点触控应用程序范围。我目前有一个PCL,项目。与共享代码使用Xamarin表单UI实现。
我只是想防止用户在Android中点击超过1个按钮。
我们所有的按钮都是基于ICommand并从viewModel调用的。它们都是异步任务(我们想让它们不阻塞并在后台线程中运行)。--〉这种方法在iOS中运行良好,只是想在Android中禁用它。
我在MainActivity.cs中尝试了以下方法

public override bool OnTouchEvent(MotionEvent e)
{
    if(e.PointerCount > 1)
    {

     return false;
    }
    else
    {
        return base.OnTouchEvent(e);
    }

}

但这并没有什么不同。任何帮助都将不胜感激

public override void OnUserInteraction()
    {
        base.OnUserInteraction();
    }

工作但不给予我触摸事件的数量

lymgl2op

lymgl2op1#

应用禁用多点触控(derived from this answer)的应用程序主题。
Resources/Values下添加名为Styles.xml的文件,并使用以下代码:

<?xml version="1.0" encoding="UTF-8" ?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">    
        <item name="android:windowEnableSplitTouch">false</item>
        <item name="android:splitMotionEvents">false</item>
    </style>
</resources>

android:windowEnableSplitTouch指示触摸是否可以跨也支持拆分触摸的其他窗口拆分。
android:splitMotionEvents指示在触摸事件调度期间,ViewGroup是否应将MotionEvents拆分为单独的子视图。
在应用程序主题级别应用这些选项将强制应用程序中所有视图的单点触摸。
然后在应用程序清单中,将样式应用于application上的android:theme属性:

样本清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
        android:versionCode="1" 
        android:versionName="1.0" 
        package="com.companyname.testapp">
    <uses-sdk android:minSdkVersion="11" />
    <application 
        android:allowBackup="true" 
        android:icon="@mipmap/icon" 
        android:label="@string/app_name" 
        android:theme="@style/MyAppTheme">
    </application>
</manifest>

这将在整个应用程序中禁用多点触控。

相关问题