使一些足球的应用程序,我有几个Activities
,Fragments
和RecyclerViews
,但只是在我的文字这一情况下改变颜色: 文字RecyclerView TextView的颜色改变
的片段显示适当的标志和名称。
但在RecyclerView
中,您几乎看不到球员的名字,因为它太白了,另外3个小文本也难以阅读。 它看起来像文本改变了它的颜色,以适应一些黑色主题,而通过我的所有的应用程序是默认Theme.AppCompat.Light.DarkActionBar
当编辑一切都看起来不错:
和一个视图的代码持有人也看起来很好:
<?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我只是叫.setText到TextView的,没有什么不寻常那里。 Holder类:
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);
}
发布您的recyclerView的'getView()'方法。最有可能的是,当你扩充你的XML布局时,你传递'null'作为父'ViewGroup'。 – JonasCz 2015-03-02 19:23:32
或...只需在XML中为TextView设置'android:textColor'属性即可。 – JonasCz 2015-03-02 19:26:50
getView()?这是ListView的事情。你的意思是onCreateViewHolder,我用更多的代码编辑了帖子。 'android:textColor'是解决方法,我想知道为什么我会遇到这个问题 – Gudin 2015-03-02 19:58:43