У меня есть LinearLayout, у которого есть несколько детей. Содержимое, связанное с MvvmCross, например:
<pfw.myparcellive.android.customcontrols.MvxClickableLinearLayout
android:id="@+id/postOffice_list"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="ItemClick SelectionChangedCommand;Visible !ShowErrorMessage;"
local:MvxItemTemplate="@layout/list_post_office_item_layout" />
Пользовательский элемент управления создан для реализации OnItemClick для каждого дочернего элемента.
Я хочу, чтобы при инициализации MvxFragment прокручивался дочерний элемент с конкретная c позиция. Вот метод, который я использую для прокрутки:
private void ScrollToSelectedItem()
{
var index = GetIndex();
if (index > 0)
{
var parent = _clickableLayout.GetChildAt(index).Parent;
parent.RequestChildFocus(_clickableLayout.GetChildAt(index), _clickableLayout.GetChildAt(index));
}
}
Основная проблема в том, что ItemSource имеет значение null. LinearLayout извлекается, но имеет ItemSource в null. Я должен упомянуть, что я уже пытался вызвать это поведение прокрутки, когда ViewModel объявил мне, что все элементы извлекаются из серверной части и устанавливаются в ViewModel.