Layout MonoDroid-XML布局和模板
我刚刚开始研究使用MonoDroid的Android编程,它来自Silverlight/WPF/WinForms背景 我正在尝试解决如何创建一个视图组,该视图组构造基于某种模板形式构造的子元素。这最好可以在布局XML中指定。有人能指出你是怎么做到的吗 有没有任何样本可以证明这种行为Layout MonoDroid-XML布局和模板,layout,xamarin.android,Layout,Xamarin.android,我刚刚开始研究使用MonoDroid的Android编程,它来自Silverlight/WPF/WinForms背景 我正在尝试解决如何创建一个视图组,该视图组构造基于某种模板形式构造的子元素。这最好可以在布局XML中指定。有人能指出你是怎么做到的吗 有没有任何样本可以证明这种行为 我正在寻找与SL/WPF/WinRT ItemsControl中的DataTemplate相似的行为 我不确定您想做什么,但听起来您想寻找一种显示项目列表的方法,其中每个项目都基于特定的布局?如果是这样的话,那么这个
我正在寻找与SL/WPF/WinRT ItemsControl中的DataTemplate相似的行为 我不确定您想做什么,但听起来您想寻找一种显示项目列表的方法,其中每个项目都基于特定的布局?如果是这样的话,那么这个类可能就是你想要的。在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]; }
}
}
公共类MyListAdapter:BaseAdapter
{
私有只读活动\u上下文;
私有只读IList_项;
公共MyListAdapter(活动上下文、IList项)
{
_上下文=上下文;
_项目=项目;
}
公共覆盖视图GetView(int位置、视图转换视图、视图组父视图)
{
变量视图=转换视图
??U context.LayoutInflater.Inflate(Resource.Layout.Item,null);
view.findviewbyd(Resource.Id.Name).Text=\u items[position].Name;
返回视图;
}
公共覆盖整数计数
{
获取{return\u items.Count;}
}
公共覆盖长GetItemId(int位置)
{
返回位置;
}
公共覆盖MyModel此[int位置]
{
获取{返回_项[位置];}
}
}