制作一个足球应用,我有一些活动、片段和可滚动视图(RecyclerViews),但在这种情况下文本的颜色改变了:
片段正确显示了徽标和名称。
但是在可滚动视图中,你几乎看不到球员的名字,因为它太白了,另外还有3个小文本也很难读取。 它看起来像是文本的颜色改变了以适应黑色主题,而在我的整个应用程序中,它是默认的Theme.AppCompat.Light.DarkActionBar。
在编辑时一切看起来都很好:
一个视图持有者的代码也看起来没问题:
Holder类。
![enter image description here](https://istack.dev59.com/P03Th.webp)
但是在可滚动视图中,你几乎看不到球员的名字,因为它太白了,另外还有3个小文本也很难读取。 它看起来像是文本的颜色改变了以适应黑色主题,而在我的整个应用程序中,它是默认的Theme.AppCompat.Light.DarkActionBar。
在编辑时一切看起来都很好:
![enter image description here](https://istack.dev59.com/HAZGx.webp)
<?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类:
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);
}
android:textColor
属性。 - Jonas Czechandroid:textColor
只是一个解决方法,我想知道为什么会出现这个问题。 - JoKr