Проблема с Textview при использовании автоссылки - PullRequest
0 голосов
/ 25 октября 2018

Всякий раз, когда я использую autoLink = "all" в TextView , это не означает правильную автосвязь номера мобильного телефона.Он также автоматически связывает предыдущий номер (номер из текста, а не номер мобильного телефона).

Вот макет

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:autoLink="all"
    android:textIsSelectable="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

Вывод прилагается ниже

Issue Image

Как избежать этой проблемы?

1 Ответ

0 голосов
/ 25 октября 2018

Если я ясно понял ваш вопрос, то вы также можете использовать ClickableSpan Это также позволяет вам подчеркивать и кликать фиксированное количество символов, обрабатывающих нажатие для того же.В XML

<TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="@dimen/_18sdp"
                android:layout_marginRight="@dimen/_18sdp"
                android:fontFamily="@font/lato_semibold"
                android:paddingTop="@dimen/_15sdp"
                android:textAlignment="center"
                android:textColor="@color/colorBlack"
                android:textSize="@dimen/_13sdp" />

В классе Java

    SpannableString ss = new SpannableString("Hello World8 123456789");
ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        // handle on click
    }
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);

    }
};
ss.setSpan(clickableSpan, 12, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
...