Làm một số ứng dụng bóng đá, tôi có vài Activities
, Fragments
và RecyclerViews
, nhưng chỉ trong này màu một trường hợp văn bản của tôi đã thay đổi: RecyclerView TextView màu sắc của văn bản thay đổi
Đoạn đang hiển thị logo và tên thích hợp.
Nhưng trong RecyclerView
, bạn hầu như không thể thấy tên người chơi vì nó quá trắng và 3 văn bản nhỏ khác cũng khó đọc. Đó là cái nhìn như văn bản thay đổi màu sắc của nó để phù hợp với một số chủ đề màu đen, trong khi thông qua tất cả các ứng dụng của tôi nó là mặc định Theme.AppCompat.Light.DarkActionBar
Khi chỉnh sửa tất cả mọi thứ có vẻ tốt đẹp:
và mã của một điểm giữ cũng có vẻ tốt đẹp:
<?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>
EDIT: Một số mã từ adapter. Tôi đang sử dụng bộ chuyển đổi này nhiều lần (trường hợp 0,1,2) và chỉ trong một trường hợp này nó đang thay đổi màu sắc của văn bản:
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;
}
Trong onBind tôi chỉ cần gọi .setText để TextView, không có gì bất thường ở đó. Chủ lớp:
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);
}
Đăng phương thức 'getView()' của recyclerView của bạn. Có lẽ, bạn đang chuyển 'null' làm cha mẹ' ViewGroup' khi tăng bố cục XML của bạn. – JonasCz
Hoặc ... Chỉ cần đặt thuộc tính 'android: textColor' cho TextView của bạn trong XML. – JonasCz
getView()? Đó là điều ListView. Ý bạn là onCreateViewHolder, tôi đã chỉnh sửa bài đăng với nhiều mã hơn. 'android: textColor' là giải pháp, tôi muốn biết tại sao tôi gặp vấn đề này – Gudin