Я - специалист по утилизации с пользовательским адаптером.На данный момент у меня семь предметов.В первый раз, когда открывается действие, мой recyclerView показывает меня в первом элементе, но если я ухожу и возвращаюсь, он позиционируется в последнем элементе.Кажется, что делает автопрокрутку.
Странная вещь (я не знаю, нужно ли это делать), что я помещаю строку в журнал, в метод GetItemViewType и при первом открытии я получаюэто:
D/POSITION(30978): 0
E/POSITION(30978): 0
D/POSITION(30978): 1
E/POSITION(30978): 1
D/POSITION(30978): 0
E/POSITION(30978): 0
D/POSITION(30978): 1
E/POSITION(30978): 1
D/POSITION(30978): 0
E/POSITION(30978): 0
D/POSITION(30978): 1
E/POSITION(30978): 1
И когда я выхожу и возвращаюсь, я получаю это:
D/POSITION(30978) : 0
E/POSITION(30978) : 0
D/POSITION(30978) : 1
E/POSITION(30978) : 1
D/POSITION(30978) : 1
E/POSITION(30978) : 1
D/POSITION(30978) : 4
E/POSITION(30978) : 4
D/POSITION(30978) : 4
E/POSITION(30978) : 4
D/POSITION(30978) : 5
E/POSITION(30978) : 5
D/POSITION(30978) : 6
E/POSITION(30978) : 6
D/POSITION(30978) : 7
E/POSITION(30978) : 7
D/POSITION(30978) : 3
E/POSITION(30978) : 3
D/POSITION(30978) : 3
E/POSITION(30978) : 3
D/POSITION(30978) : 4
E/POSITION(30978) : 4
D/POSITION(30978) : 5
E/POSITION(30978) : 5
D/POSITION(30978) : 6
E/POSITION(30978) : 6
D/POSITION(30978) : 7
E/POSITION(30978) : 7
Мой макет:
<MvxRecyclerView
android:clipToPadding="false"
android:id="@+id/myRecyclerView"
android:focusable="false"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scrollbars="vertical" />
Моя деятельность:
protected override void OnViewModelSet()
{
SetContentView(Resource.Layout.myActivity);
_recyclerViewAdapter = new ClassRecyclerViewAdapter((IMvxAndroidBindingContext)BindingContext);
_recyclerView = FindViewById<MvxRecyclerView>(Resource.Id.myRecyclerView);
_recyclerView.HasFixedSize = true;
_recyclerView.Adapter = _recyclerViewAdapter;
_recyclerView.ViewTreeObserver.AddOnScrollChangedListener(this);
}
И мой адаптер:
public class ClassRecyclerViewAdapter : MvxRecyclerAdapter
{
public ClassRecyclerViewAdapter(IMvxAndroidBindingContext bindingContext)
: base(bindingContext) => HasStableIds = true;
public override int GetItemViewType(int position)
{
Mvx.IoCProvider.Resolve<ILogger>().LogMessage("POSITION", position.ToString());
return ViewTypeFactory.ViewType((MyItems)GetItem(position));
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
var bc = new MvxAndroidBindingContext(parent.Context, BindingContext.LayoutInflaterHolder);
return ViewHolderFactory.ViewType(viewType, parent, bc);
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
base.OnBindViewHolder(holder, position);
var holder = holder as ItemViewHolder;
holder.Bind();
}
public override long GetItemId(int position)
{
var fi = (MyItems)GetItem(position);
return fi.Id;
}
}
Мне нужно, чтобы это всегда показывало меня в первом элементе.
Есть идеи?
Спасибо за ваши комментарии.