c# - 如何在 Xamarin 的 ViewCompat 中将我的 SimplestExploreByTouchHelper 设置为 AccessibilityDelegate?
问题描述
我对 TalkBack 功能比较陌生,需要帮助。我有一个 Xamarin 应用程序,当 TalkBack 功能处于活动状态时,我需要它来处理 DPAD 键事件(上、下、左、右)。
当然,这是一个相当新的选项,在我的 Xamarin 应用程序使用的非本机组件上没有任何信息,没有,nada,没有任何关于此的信息,我不得不将代码从 java 转换为 c#。
关注本网站:https ://developer.android.com/training/tv/accessibility/non-native-best-practices
我已尽我所能,但我必须将最后一个函数解释为 c#,这就是问题所在。
Java代码:
private void init(@Nullable AttributeSet attrs) {
...
ViewCompat.setAccessibilityDelegate(this,
new SimplestExploreByTouchHelper(this));
}
我假设我必须在 OnCreate 函数内的 MainActivity.cs 文件中调用此函数。但是,由于那是 Java,我必须将其转换为 C#:
C#
protected override void OnCreate(Bundle savedInstanceState)
{
...
SimplestCustomView scv = new SimplestCustomView(this.ApplicationContext);
var helper = new SimplestExploreByTouchHelper(scv);
ViewCompat.SetAccessibilityDelegate(mGfxSurface, helper);
}
而且,和往常一样,有一个问题我需要帮助。有一个错误:
Argument 2: cannot convert from 'MyApp.SimplestExploreByTouchHelper' to 'AndroidX.Core.ViewAccessibilityDelegateCompat'
关于如何使用 Xamarin 在非本机组件中实现 TalkBack 功能的信息几乎没有。
你能帮我解决以下问题吗?
- 如何转换它?
- 是否应该从 MainActivity.cs OnCreate 函数调用该函数?
我的目标是让我的应用程序处理 DPAD 按键事件,而不是在处理 TalkBack 时由辅助功能服务器使用它们。这个问题在这里描述:https ://developer.android.com/training/tv/accessibility/non-native-app
解决方案
如何转换它?
private void init(IAttributeSet attrs) {
ViewCompat.SetAccessibilityDelegate(this, new SimplestExploreByTouchHelper(this));
}
是否应该从 MainActivity.cs OnCreate 函数调用该函数?
这个函数应该放在自定义视图类SimplestCustomView
中。
并确保在您的代码中SimplestExploreByTouchHelper
继承。ExploreByTouchHelper
推荐阅读
- haskell - 通过 Barbies-TH 将 Barbie 类型用作另一个 Barbie 类型中的字段
- node.js - Mongoose:未调用 ID 时路径“_id”处的 CastError
- r - 如何将整列附加到 r 中另一列的末尾?
- python - Python gnupg“类型错误:需要一个类似字节的对象,而不是'str'”
- google-chrome - chrome.runtime.onMessage.addListener 在页面加载之前不起作用
- jmeter - Jmeter - 分布式(远程)测试执行从连接在执行过程中关闭
- javascript - 使用 router.get('/me', (res,req) => {}) 时如何访问身份验证信息
- javascript - 如何使用 javascript 减少实时日期/时间字符串?
- python - 使用 Python 从网页抓取到动态表
- javascript - 在这种情况下如何优化我的变量?