MonoDroid - XML ​​макеты и шаблоны - PullRequest
0 голосов
/ 15 марта 2012

Я только начинаю изучать программирование Android с MonoDroid, исходя из фона Silverlight / WPF / WinForms.

Я пытаюсь выяснить, как бы вы создали ViewGroup, которая создает дочерние элементы, которые создаются на основе некоторой формы шаблона.Предпочтительно это можно было бы указать в макете XML.Кто-нибудь может указать, как вы это делаете?

Существуют ли какие-либо примеры, демонстрирующие такое поведение?/ WinRT ItemsControl.

1 Ответ

1 голос
/ 16 марта 2012

Я не уверен, что вы хотите сделать, но похоже, что вы ищете способ отобразить список элементов, где каждый элемент основан на определенном макете?Если это так, то класс ListView , вероятно, то, что вы ищете.В Android каждый элемент в списке может быть любым представлением и может быть создан либо из кода, либо из макета, определенного в XML.Xamarin предлагает несколько простых примеров здесь , чтобы помочь начать работу.

Поскольку вы хотите больше настраивать элементы списка, вы можете захотеть создать собственный класс адаптера списка вместо использования одного из встроенных.Это может выглядеть примерно так, например:

public class MyListAdapter : BaseAdapter<MyModel>
{
    private readonly Activity _context;
    private readonly IList<MyModel> _items;

    public MyListAdapter(Activity context, IList<MyModel> items)
    {
        _context = context;
        _items = items;
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var view = convertView
                    ?? _context.LayoutInflater.Inflate(Resource.Layout.Item, null);

        view.FindViewById<TextView>(Resource.Id.Name).Text = _items[position].Name;

        return view;
    }

    public override int Count
    {
        get { return _items.Count; }
    }

    public override long GetItemId(int position)
    {
        return position;
    }

    public override MyModel this[int position]
    {
        get { return _items[position]; }
    }
}
...