Android - LinkMovementMethod.getInstance() автоматически открывает браузер, когда пользователь отпускает прокрутку по ссылке

Это проблема юзабилити

Я использовал LinkMovementMethod.getInstance() чтобы разрешить прокрутку текстового просмотра и кликабельность URL-адресов (чтобы открыть браузер), проблема заключается в том, что возникает путаница, когда пользователь, отпускающий прокрутку по ссылке, автоматически открывает браузер Google Chrome вместо того, чтобы ничего не делать. Каждый открытый свиток - это браузер (потому что ссылок много).

Итак, перед тем, как открыть браузер, я хочу отобразить диалог с вопросом "Хотите открыть ссылку?", Я много пробовал, но не могу определить слушателей.

Другим решением было бы открывать браузер только в том случае, если щелчок и отпускание выполнялись по одной и той же ссылке (в этом случае больше гарантируется, что пользователь не сделал никакой прокрутки)

Я также открыт для других предложений

Много ссылок, как вы можете видеть

введите описание изображения здесь

XML кратко:

<etc.TextViewCustomizado
    android:layout_width="match_parent"
    app:nomeFonte="Cairo_Regular"
    android:textSize="17sp"
    android:id="@+id/textview"
    android:textColor="@android:color/black"
    android:textColorLink="@color/azul2escuro"
    android:layout_height="match_parent" />

Итак, как вы можете видеть, это просто текстовое представление, которое содержит всю информацию, передаваемую:

textview.setText(Html.fromHtml(
       getResources().getString(R.string.lic1)
));
textview.setMovementMethod(LinkMovementMethod.getInstance());

Ресурс R.string.lic:

<![CDATA[

    Programming libraries (Linguagens de programação)

    <br>

    <a href="https://github.com/rengwuxian/MaterialEditText">MaterialEditText</a>
    by
    <a href="https://github.com/rengwuxian">rengwuxian</a>
    licensed under
    <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>

    ..continues

Спасибо

1 ответ

Решение

Я нашел альтернативу, используя WebView

XML:

<LinearLayout
    ...>

    <WebView
        android:id="@+id/wv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

Деятельность:

private WebView wv = (WebView) findViewById(R.id.wv);
wv.loadData(getResources().getString(R.string.lic1), "text/html; charset=utf-8",null);
Другие вопросы по тегам