如何在启用“辅助功能”模式的情况下使可扩展文本可单击

Tus*_*hit 5 android accessibility-api textview spannablestring android-accessibility

我有一个问题说明,我需要在启用“可访问性”设置的情况下运行我的应用程序,以提供反馈意见,但是这里的问题是当我单击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);
Run Code Online (Sandbox Code Playgroud)

dev*_*B78 7

如果您使用 Android X 库,您应该能够通过以下方式处理可访问性和可点击的可跨越字符串:

ViewCompat.enableAccessibleClickableSpanSupport(yourView);
Run Code Online (Sandbox Code Playgroud)

还要确保您拥有最新的依赖项:

com.android.support:appcompat-v7:28.0.0
Run Code Online (Sandbox Code Playgroud)

它应该可以返回到 API 19。

注意:要启用Android X库,请转到gradle.properties并添加以下行:

android.useAndroidX = true
android.enableJetifier = true
Run Code Online (Sandbox Code Playgroud)