我有一个问题陈述,我需要在启用“辅助功能”设置的情况下运行我的应用程序,以获得对话反馈,但问题是当我点击其中包含Spannable链接的TextView
时,然后它读取全文,但不允许我单独单击该Spannable文本,而禁用辅助功能允许我使字符串多字节或链接可点击。
这是我的代码String
可点击:
SpannableString ss = new SpannableString("Android is a Software stack");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
startActivity(new Intent(MyActivity.this, NextActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
ss.setSpan(clickableSpan, 22, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
答案 0 :(得分:0)
恐怕在android中没有办法实现它(我几个月都遇到过同样的问题)。唯一的方法是使用本地上下文菜单。看来,Talkback正在尝试使ADA用户使用那里的手势来使用菜单,这将解决我们开发人员方面的太多问题。可能还有另一种方法,即创建一个WebView,然后添加将处理所有内容的html元素,但这对应用程序性能不利:(
如此处所述:Clickable links(Google支持)
您必须访问local context menu
才能激活Swiping up and then right
的任何可点击范围,然后单击Links
子菜单。
希望这会有所帮助:)
答案 1 :(得分:0)
如果您使用的是Android X库,则应该能够通过以下方式处理可访问性和可点击的跨度字符串:
ViewCompat.enableAccessibleClickableSpanSupport(yourView);
还要确保您具有最新的依赖项:
com.android.support:appcompat-v7:28.0.0
它应该可以使用API 19。
注意:要启用 Android X 库,请转到您的 gradle.properties 并添加以下行:
android.useAndroidX = true
android.enableJetifier = true
答案 2 :(得分:0)
无需执行任何操作。只需在屏幕上用两根手指单击Spannable链接,并且其中一根手指必须在Spannable链接上。尝试一下!!!