不能在android 11 (api 30)上使用talkback 12.2的可点击跨度



我有一个自定义视图,其中包含可点击的span。但如果我去反馈菜单,链接和按下我的链接,什么都没有发生。但我希望能看到通知。这是否是个问题,应该向谷歌报告哪些?谢谢大家的帮助。

<标题>

myview.java h1> MainActivity.java h1> activity_main.xml h1> AndroidManifest.xml h1> div class="one_answers">@Ma3x我不知道为什么,但是我们必须为我们的文本有特殊的变量。因此,对于myview,我们可以简单地将结果保存在变量中,并将其设置为文本accessbilitynodeinfo。

package ru.alexandrkozlovskiy.test;
import android.content.Context;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ClickableSpan;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
class myview extends View {
SpannableStringBuilder sb= new SpannableStringBuilder("Test of clickable span");
public myview(Context context) {
this(context,null);
}
public myview(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public myview(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr,0);
}
public myview(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
sb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
try {
Toast.makeText(getContext(),"Test of clickable span",1).show();
}
catch (Exception e) {
setContentDescription(e.toString());
}
}
}, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setText(sb);
}
}

我希望有人向我解释,为什么如果我重新创建我的变量,就像以前一样,反馈不点击这个链接。注意:请不要尝试在屏幕上看到,但使用反馈和滑动到这个视图。

相关内容

  • 没有找到相关文章