我有一个回收站视图,显示各种通知。一个是带有“接受”和“拒绝”按钮的朋友请求通知。单击“接受”或“拒绝”时,我更新了我的状态,然后调用notifyDataSetChanged。
此调用调用我的绑定代码,然后隐藏“接受”和“拒绝”按钮。问题是我的“接受”和“拒绝”按钮不会被隐藏。
完全触摸Recyclerview后,UI会正确更新并隐藏按钮。
所以看来当我隐藏一些控制器来改变行的高度时,recyclerview就不会正确处理事情。
我已尝试在recyclerview上使用ForceLayout(),但这不起作用。如果没有用户的更多互动,我怎样才能让recyclerview再次正确展示?
我已被要求为此显示源代码:为简洁起见,我遗漏了业务逻辑,因为它在执行/不执行业务逻辑时发生。
// this is part of my viewholder its the click event for accept
private async void OnClickAcceptRequest(object sender, EventArgs e)
{
// update object state here...
// now get it to redraw
m_fragNotifications.lstNotifications.GetAdapter().NotifyDataSetChanged()
}
// in OnBindViewHolder I grab my item, then test...
if (vwView.CurrentNotification.State != State.Pending)
{ lytButtonsContainer.Visibility = ViewStates.Gone; }
else { lytButtonsContainer.Visibility = ViewStates.Visible; }
谢谢!