Я нашел два решения для этой проблемы:
- Ваш minSdk = 24, поэтому нет необходимости использовать srcCompat.Попробуйте изменить это:
app: srcCompat = "@ drawable / ic_warning"
на это:
android:background = "@ drawable / ic_warning"
Если вы предпочитаете использовать app: srcCompat, вам следует немного изменить метод getView в TemplateRow.class.Ниже модифицированная версия метода getView ():
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
DisplayTemplate displayTemplate = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder; // view lookup cache stored in tag
final View result;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.template, parent, false);
viewHolder.line1 = convertView.findViewById(R.id.line1);
viewHolder.line2 = convertView.findViewById(R.id.line2);
viewHolder.line3 = convertView.findViewById(R.id.line3);
viewHolder.title = convertView.findViewById(R.id.title);
viewHolder.description = convertView.findViewById(R.id.description);
viewHolder.imageView = convertView.findViewById(R.id.imageView);
result = convertView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
result = convertView;
}
Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
result.startAnimation(animation);
lastPosition = position;
viewHolder.title.setText(displayTemplate.getTitle());
viewHolder.description.setText(displayTemplate.getDescription());
Drawable drawable = parent.getResources().getDrawable(R.drawable.ic_warning, null);
viewHolder.imageView.setImageDrawable(drawable);
showModel(viewHolder.line1,displayTemplate.getLines().get(0));
showModel(viewHolder.line2,displayTemplate.getLines().get(1));
showModel(viewHolder.line3,displayTemplate.getLines().get(2));
// Return the completed view to render on screen
return convertView;}