Проблема этого решения, которую я нашел, заключается в создании статического глобального массива и использовании его в классе ADAPER CLASS «onBindViewHolder», в котором я создал все глобальные переменные / объекты.
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {
private Context context;
public static class PersonViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView question,category;
TextView personAge;
ImageView upvote;
Button b1;
public static int k;
private int visibleThreshold = 5;
public static int i=0;
static int check[]; //Static array
PersonViewHolder(View itemView,int i) {
super(itemView);
if(i==PersonViewHolder.k)
{
b1=(Button)itemView.findViewById(R.id.loadmore);
}
else
{
cv = (CardView)itemView.findViewById(R.id.cv);
question = (TextView)itemView.findViewById(R.id.question);
category = (TextView)itemView.findViewById(R.id.text_categ);
personAge = (TextView)itemView.findViewById(R.id.text1);
upvote = (ImageView)itemView.findViewById(R.id.upvote);
}
}
}
Здесь (IN CONSTRUCTOR RVADAPTER CLASS) я дал размер массиву равным размеру / no элементов, которые я буду отображать в представлении recycler
List<Person> persons;
RVAdapter(List<Person> persons){
this.persons = persons;
PersonViewHolder.check=new int[persons.size()];
PersonViewHolder.k=persons.size();
}
BindViewHolder, I, Применил эту концепцию на кнопке, когда я нажимаю кнопку, фоновое изображение кнопки изменяется. Объект кнопки i используется как «upvote», так как «i» содержит позицию каждого элемента в представлении recycler, я использовал его как индекс массива, который работает как флаг и который отслеживает состояние элементов.
@Override
public void onBindViewHolder(final PersonViewHolder personViewHolder, final int i) {
if(i==PersonViewHolder.k) {
personViewHolder.b1.setText("load more");
}
else
{
personViewHolder.question.setText(persons.get(i).name);
personViewHolder.personAge.setText(persons.get(i).age);
if(personViewHolder.check[i]==0)
{personViewHolder.upvote.setBackgroundResource(R.drawable.noupvote);
}
else
{
personViewHolder.upvote.setBackgroundResource(R.drawable.upvote);
}
personViewHolder.upvote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(personViewHolder.check[i]==0)
{personViewHolder.check[i]=1;
personViewHolder.upvote.setBackgroundResource(R.drawable.upvote);
}
else
{personViewHolder.check[i]=0;
personViewHolder.upvote.setBackgroundResource(R.drawable.noupvote);
}
}
});
// personViewHolder.personPhoto.setImageResource(persons.get(i).photoId);
}
}
Возможно, попробуйте применить встроенный стиль к изображению так:
$html = '<p>This is a test ';
$html .= '<img src="C:\\path_to_image\\Untitled.png" style="vertical-align: middle;"> ';
$html .= 'This is a test</p>';
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, '');
Я добавил атрибут style style="vertical-align: middle;"
к тегу <img>
, который инструктирует его выровнять себя по центру его родителя <p>
.
Это будет работать в обычном старом HTML в соответствии с этим изображением:
Пожалуйста, позвольте мне знать, работает ли это для вас.