2009-10-17 11 views
6

Mam TextView wewnątrz LinearLayout. LinearLayout może odbierać fokus i chcę, aby textColor z TextView zmieniał się, gdy to robi. Pomyślałem, że użycie ColorStateList zadziała, ale wydaje się, że TextView nie otrzymuje fokusa, gdy robi to LinearLayout. Wiem o tym, ponieważ próbowałem tego kodu:Android: zmień TextView textColor kiedy rodzic jest skupiony

mTextView.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     Log.d(TAG, "Changed TextView focus to: " + hasFocus); 
    } 
}); 

I nic się nie loguje. Nie chcę używać OnFocusChangeListener na LinearLayout, aby zmienić textColor z TextView, myślę, że to musi być zrobione z XML. Dzieje się tak dlatego, że w innej działalności mam ExpandableListView z niestandardowym adapterem i niestandardowymi widokami, a Android zmienia textColor s z TextView s (z jasnego na ciemny) wewnątrz moich widoków niestandardowych, gdy elementy są skupione.

Odpowiedz

10

Jest to stary post, ale ponieważ miałem ten sam problem, tu jest atrybut XML znalazłem to zrobić:

android:duplicateParentState="true" 

(należy doliczyć do TextView zmienić swój „skoncentrowane” stan, gdy zmienia się stan układu'S)

+0

Działa dobrze bro :: :) –

4

Możesz pobrać TextView w metodzie onFocuseChange słuchacza LinearLayout. Coś jak

public void onFocusChange(View v, boolean hasFocus) { 
    TextView tv = (TextView)v.findViewById(R.id.myTextView); 
    tv.setTextColor(R.color.foo); 
} 

Ponieważ LL może obsługiwać wiele widgetów myślę, że oczekuje się, że onFocus od LL nie będzie rozprzestrzeniać nawet jeśli masz jedną kontrolę

+0

wiem, że mogę zrób to w ten sposób, ale jak powiedziałem w oryginalnym poście, chciałbym tego uniknąć. Ponadto, jeśli kiedykolwiek użyłeś niestandardowego adaptera dla ListView, zobaczysz, że nadal zmienia on kolor tekstu podczas ustawiania pozycji listy, bez względu na to, ile elementów masz w widoku elementu. Ciekawi mnie, jak to zrobili, i założę się, że zrobiono to tylko z XML. – Felix

Powiązane problemy