我的RecyclerView适配器里面有 private void CheckNewItemAddMethod(int position)
{
if (Validate(position) && position == ItemCount - 1)
{
transactionItemModelList.Add(new TransactionItemModel() { ItemID = -1 });
NotifyItemInserted(transactionItemModelList.Count - 1);
}
}
private bool Validate(int pos)
{
ItemCustomViewHolder Passedholder = FindViewHolderByPoistion(pos);
bool valid = true;
int x = 0;
if (! int.TryParse(Passedholder.itemCount.Text, out x) || x == 0){
valid = false;
}
int intItemPrice = 0;
if (string.IsNullOrEmpty(Passedholder.itemName.Text) || !int.TryParse(Passedholder.itemPrice.Text, out intItemPrice) || intItemPrice == 0)
{
valid = false;
Passedholder.itemName.SetError(mContext.GetString(Resource.String.empty_field), null);
}else
{
Passedholder.itemName.SetError((string)null, null);
}
if (string.IsNullOrEmpty(Passedholder.itemPrice.Text))
{
valid = false;
Passedholder.itemPrice.SetError(mContext.GetString(Resource.String.empty_field), null);
}
else
{
Passedholder.itemPrice.SetError((string)null, null);
}
return valid;
}
方法,这个方法在我的适配器添加新行之前验证了行,我在最后一行编辑时遇到的问题验证错误出现在错误的位置,我跟踪我的适配器,我相信它给出了正确的位置
这里是参考图像
我的代码我检查焦点项是否为最后一项,并且验证是否通过添加新行
import os
import shutil
n = 1
while (n < 30):
shutil.move('Stack_%d.txt' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d_shifts.txt' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d.mrc' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d.rawtlt' % (n), 'stack_%d' % (n))
n = n+1
注意当我将其滚动回右视图时
任何人都可以指导我为什么会发生这种情况