2015-03-02 8 views
6

कुछ फुटबॉल एप्लिकेशन बनाना, मैं कुछ Activities, Fragments और RecyclerViews है, लेकिन बस अपना पाठ के इस एक मामले रंग में बदल दिया है: enter image description hereपाठ की RecyclerView TextView रंग बदल

टुकड़ा उचित रूप से लोगो और नाम प्रदर्शित कर रहा है।

लेकिन RecyclerView में, आप मुश्किल से खिलाड़ियों का नाम देख सकते हैं क्योंकि यह बहुत सफ़ेद है, और 3 अन्य छोटे पाठ भी पढ़ने में मुश्किल हैं। यह पाठ की तरह लग रही है बदल यह रंग है, कुछ काले विषय को फिट करने के लिए जब संपादन सब कुछ ठीक लग रहा है, जबकि अपने सभी एप्लिकेशन के माध्यम से यह डिफ़ॉल्ट Theme.AppCompat.Light.DarkActionBar

है:

enter image description here

और एक दृश्य का कोड धारक भी ठीक लग रहा है:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textStyle="bold" 
     android:text="12: Tyler Blackett" 
     android:id="@+id/txt_players_name" 
     android:layout_marginLeft="12dp" 
     android:layout_marginStart="12dp" 
     android:layout_marginTop="8dp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/txt_players_position" 
     android:layout_below="@+id/txt_players_name" 
     android:layout_alignLeft="@+id/txt_players_name" 
     android:layout_alignStart="@+id/txt_players_name" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/txt_players_nationality" 
     android:layout_below="@+id/txt_players_position" 
     android:layout_alignLeft="@+id/txt_players_position" 
     android:layout_alignStart="@+id/txt_players_position" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/txt_players_value" 
     android:layout_below="@+id/txt_players_nationality" 
     android:layout_alignLeft="@+id/txt_players_nationality" 
     android:layout_alignStart="@+id/txt_players_nationality" /> 


</RelativeLayout> 

संपादित करें: एडाप्टर से कुछ कोड। मैं इस अनुकूलक कई बार (मामले 0,1,2) का उपयोग कर रहा हूँ और केवल इस एक मामले में यह पाठ का रंग बदल रहा है:

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view; 
     RecyclerView.ViewHolder viewHolder = null; 
     switch(viewType){ 
      case 0: 
       view = inflater.inflate(R.layout.row_teams, parent, false); 
       viewHolder = new ViewHolder0(view); 
       break; //working fine 
      case 1: 
       {...} //working fine 
      case 2: 
       {...} //working fine 
      case 3: 
       view = inflater.inflate(R.layout.row_players, parent, false); 
       viewHolder = new ViewHolder3(view); 
     } 
     return viewHolder; 
    } 

में onBind मैं सिर्फ, TextView को .setText फोन वहाँ असामान्य कुछ भी नहीं। धारक वर्ग:

public class ViewHolder3 extends RecyclerView.ViewHolder { 

     TextView mPlayerName; 
     TextView mPosition; 
     TextView mNationality; 
     TextView mValue; 

     public ViewHolder3(View itemView) { 
      super(itemView); 
      mPlayerName = (TextView) itemView.findViewById(R.id.txt_players_name); 
      mPosition = (TextView) itemView.findViewById(R.id.txt_players_position); 
      mNationality = (TextView) itemView.findViewById(R.id.txt_players_nationality); 
      mValue = (TextView) itemView.findViewById(R.id.txt_players_value); 
     } 
+0

अपने रीसाइक्लिंग व्यू के 'getView()' विधि को पोस्ट करें। सबसे अधिक संभावना है कि, आप अपने एक्सएमएल लेआउट को फुलाते समय माता-पिता 'व्यू ग्रुप' के रूप में 'शून्य' पास कर रहे हैं। – JonasCz

+1

या ... एक्सएमएल में अपने टेक्स्ट व्यू के लिए बस 'एंड्रॉइड: टेक्स्टकॉलर' विशेषता सेट करें। – JonasCz

+0

getView()? वह सूची दृश्य है। आपका मतलब है क्रेतेव्यूहोल्डर, मैंने अधिक कोड के साथ पोस्ट संपादित किया है। 'एंड्रॉइड: टेक्स्टकॉलर 'कामकाज है, मैं जानना चाहता हूं कि मुझे यह समस्या क्यों मिल रही है – Gudin

उत्तर

11

मैं सिर्फ एक ही समस्या थी, और यह था, क्योंकि मैं वर्तमान Activity के बजाय RecyclerView एक LayoutInflaterApplication की Context के साथ बनाया में उपयोग कर रहा था,।

Activity से इसे बनाने के लिए इसे बदलने के बाद, RecyclerView रंग काला पर वापस चले गए।

+1

अगर मैं कर सकता तो मुझे यह जवाब 100 गुना अधिक पसंद आएगा। धन्यवाद! – feresr

+0

यह मेरे लिए काम करता है .. धन्यवाद ... लेकिन क्या आप इसे समझा सकते हैं .. – mithileshssingh

1

बस अपने एक्सएमएल लेआउट में अपनी TextView के लिए android:textColor विशेषता निर्धारित किया है। यह आपको आवश्यकतानुसार टेक्स्ट का रंग बदलने देगा।

संबंधित मुद्दे