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);