Как я могу получить доступ к детям RecyclerView
? Я не ищу onClickListener
. Я пытаюсь понять, как я могу изменить фон некоторых TextViews
в RecyclerView
. Я понятия не имею. Любой совет будет принят во внимание.Получить ребенка от RecyclerView
Обратите внимание: прямые дети являются вертикальными LinearLayout
s, которые содержат TextView
s.
public class MessdatenAdapter extends RecyclerView.Adapter<MessdatenAdapter.ViewHolder> {
private ArrayList<ArrayList<MessdatenColumn>> list = new ArrayList<ArrayList<MessdatenColumn>>();
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public LinearLayout llVerticalContainer;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
llVerticalContainer = (LinearLayout) itemLayoutView.findViewById(R.id.layout_messdaten);
}
}
public MessdatenAdapter(ArrayList<ArrayList<MessdatenColumn>> list) {
this.list = list;
}
// Create new views (invoked by the layout manager)
@Override
public MessdatenAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_messdaten, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ArrayList<MessdatenColumn> terminStringList = list.get(position);
LayoutInflater inflater = LayoutInflater.from(MainActivity.getMyAppCompatActivity());
holder.llVerticalContainer.removeAllViews();
for(int i = 0; i < terminStringList.size();i++){
TextView tv = (TextView) inflater.inflate(R.layout.item_messdaten_textview, null);
if(terminStringList.get(i).getValue().equals("NaN")){
tv.setText("-");
} else {
tv.setText(terminStringList.get(i).getValue());
}
if (i == 0) {
tv.setTypeface(null, Typeface.BOLD);
}
holder.llVerticalContainer.addView(tv);
}
}
@Override
public int getItemCount() {
return list.size();
}
}
Но если ребенок не создан/виден, он сработает? Я хочу установить фоновый и текстовый цвет текста, который является частью дочерних элементов recyclerview. Даже те, которые не видны из-за положения прокрутки. – Bolic
Если дочерний объект был создан ранее, диспетчер компоновки может получить к нему доступ. Если он еще не был создан, вы бы сделали это с помощью параметра в своей модели. – Droidekas
Логически, вы не можете сделать ** изменение ** на вид который еще не нарисован. Вы можете только ** нарисовать ** это на основе того, что ваша модель или набор данных требует, чтобы она была нарисована. – Droidekas