我的应用程序基于您在Eclipse中创建新Android应用程序时可以选择的默认导航抽屉活动
我创建的主要片段包含一个带有autoLink的TextView。 Android识别链接,它们是蓝色和带下划线的,但是当我点击/点击此链接时,它不会突出显示,因此用户无法得到他点击链接而没有错过的响应。在只有TextView的简单应用程序中,它可以正常工作,当用户点击链接时,它会在Android打开Chrome中的链接之前在短时间内突出显示。高亮显示如下:
所以,我做了一些研究,为什么我的链接没有突出显示,并从我的应用程序中删除了所有无关紧要的东西。现在我可以说当TextView
嵌入DrawerLayout
时,它只能按预期工作。
现在这是我的剥离应用程序,您可以轻松地重现我的问题:
activity_mail.xml:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/simple_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:linksClickable="true"
android:autoLink="all"
android:padding="10dp"
android:text="Test link: http://www.google.de. Test test testtest." />
</android.support.v4.widget.DrawerLayout>
MainActivity.java:
package com.example.testlinktextview;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
当我将activity_main.xml中的android.support.v4.widget.DrawerLayout
替换为LinearLayout
时,它会像预期的那样工作。
有人知道如何在点击时突出显示链接吗?
答案 0 :(得分:1)
基于这个答案https://stackoverflow.com/a/12047372/3271972,我找到了解决方案 ......不是一个完美的解决方案,一点点解决方法,但也许对某人有帮助。
如果你有更好的解决方案,我很乐意阅读它。
我添加到TextView:
<TextView
...
android:textColorLink="@color/link_selector"
和新文件link_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#34b5e5" />
<item android:state_focused="true" android:color="#34b5e5" />
<item android:color="#35b5e5" />
</selector>
我认为#34b5e5
几乎是原始的链接颜色
非常重要,第三项<item android:color="#35b5e5" />
的默认颜色与state_pressed
中的颜色不同。如果它们相同,则按下时链接仍然不会突出显示!颜色必须不同,即使只是一点点!