2014-07-15 48 views
1

我的應用程序基於在Eclipse中創建新的Android應用程序時可以選擇的默認導航Drawer活動。
我創建的主要片段包含帶有autoLink的TextView。 Android識別鏈接,它們是藍色和下劃線的,但是當我點擊/點擊這個鏈接時,它不會被突出顯示,所以用戶沒有得到他點擊鏈接並且沒有錯過的響應。在只有TextView的簡單應用程序中,它可以工作,當用戶點擊鏈接時,它會在Android打開Chrome中的鏈接之前短時間突出顯示。該hightlighting看起來是這樣的:
screenshot with highlighted link in TextViewAndroid - TextView中的鏈接在嵌入DrawerLayout時單擊時不突出顯示

所以,我做了一些研究,爲什麼我的鏈接不突出,並從我的應用程序刪除了所有unnessesary事情。現在我可以說,只有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); 
    } 
} 

當我更換android.support.v4.widget.DrawerLayout在與LinearLayout的activity_main.xml中,它的工作方式與預期相同。

有沒有人有一個想法如何獲得點擊時突出顯示的鏈接?

回答

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中的顏色。如果它們相同,則按下時鏈接仍不會突出顯示!顏色必須不同,即使只有一點點!

+0

它的工作原理。但它仍然很奇怪,爲什麼它默認不工作。我搜索了Google,但TextView中的鏈接信息太少。 –