Я новичок в Xamarin / Android. У меня есть список с примерно 20 строками (для просмотра последних нескольких строк пользователям необходимо прокрутить вниз). У меня есть требование автоматически выделять случайные строки на основе некоторых рассчитанных значений. Мой вопрос: после заполнения списка (у меня есть специальный адаптер для заполнения списка), как я могу установить цвет фона или переднего плана для выбранной строки (скажем, 3-й ряд, выделите его на 10 секунд, затем выделите 1-й ряд - номер строки основан на расчете).
Могу ли я также выполнить автоматическую прокрутку вверх / вниз, чтобы отобразить строку, которая в данный момент находится за пределами экрана? Например, если в данный момент я выделяю строку 2, а затем мне нужно выделить строку 15, я хочу, чтобы приложение автоматически прокручивало страницу вниз и отображало выделенную строку 15. Возможно ли это?
Ниже приведен мой пользовательский адаптер.
public class PeopleListAdapter: BaseAdapter<Content>
{
List<Content> content;
Activity context;
public PeopleListAdapter(Activity context, List<Content> content) : base()
{
this.context = context;
this.content = content;
}
public override long GetItemId(int position)
{
return position;
}
public override Content this[int position]
{
get { return content[position]; }
}
public override int Count
{
get { return content.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView; // re-use an existing view, if one is available
if (view == null) // otherwise create a new one
view = context.LayoutInflater.Inflate(Resource.Layout.listlayout, null);
view.FindViewById<TextView>(Resource.Id.txtValues).Text = content[position].Text;
return view;
}
}
Ниже приведен мой макет списка.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<ListView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list" >
</ListView>
</LinearLayout>
У меня есть адаптер, заполняющий макет ниже (listlayout.axml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtValues" />
</LinearLayout>
Пожалуйста, подскажите, правильно ли я это делаю. Я новичок в этом. Я также хотел бы знать, как я могу выделить строку по своему выбору, учитывая вышеописанную реализацию.