xamarin android listview的用法
2016-09-24 16:29
267 查看
listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣。原谅我的大小写吧.
News.cs 和NewAdapter.cs
一个最简单的listview绑定数据就这么简单的。后面将会介绍几个比较常用额属性和方法
divider:设置分隔条,当设置为@null时则没有分隔条,设置的值可以是颜色代码,也可以是drawable资源分割
dividerHeight:设置分隔条的高度
footDividersEnabled:是否在footerView 表尾前绘制一个分隔条,默认为true
headerDividerEnabled同上
这里我参考的csdn-pig写的android博客,设置listview 表头表尾丙没有这种属性,只用以下几个方法
AddHeaderView(View v):添加headerView 表头,View v参数是一个布局页
AddHeaderView(headerView,null,false):添加headerView 表头,设置header是否可以选中
AddFooterView(View v):同上
AddFooterView(headerView,null,false):同上
除了以上几个属性我们还可以设置listview的点击效果等
stackFromBottom:设置列表放在最下面,默认为的false
cacheColorHint:如果你的Listview的Background是一张图片的话,当你拖动和点击ListView Item空白位置会发现item都变成黑色了,这个时候设置cacheColorHint设置为透明#00000000 ,6个0的是黑色
隐藏滚动条 android:scrollbars="none
关于listview的简单的用法就这么了,当然这是最基础的,还有很多问题需要去探索,listview 单击项的效果,listview控件的优化。。。。。。
listview demo 下载链接 :
ListView例子源码下载
listview绑定自定义的BaseAdapter
先来看一下最终实现的效果图:News.cs 和NewAdapter.cs
namespace DrawerLayout.Adapter { public class News { public int Pv { get; set; } public string Title { get; set; } public News(string title,int Pv) { this.Title = title; this.Pv = Pv; } } public class NewsAdapter : BaseAdapter { private List<News> data; private Context context; public override int Count { get { return data.Count; } } public NewsAdapter(List<News> data,Context context) { this.data = data; this.context = context; } public override Java.Lang.Object GetItem(int position) { return null; } public override long GetItemId(int position) { return position; } public override View GetView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.From(context).Inflate(Resource.Layout.lv_test,parent,false); TextView title = convertView.FindViewById<TextView>(Resource.Id.tv_title); TextView pv = convertView.FindViewById<TextView>(Resource.Id.tv_pv); pv.Text = data[position].Pv.ToString(); title.Text = data[position].Title; return convertView; } } }listview布局lv_test.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" android:background="#ffffff" android:padding="10dp"> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal" android:gravity="center_vertical"> <TextView android:id="@+id/tv_title" android:layout_height="50dp" android:layout_width="0dp" android:layout_weight="5" android:textColor="#000000" android:text="加内特的历史地位比邓肯差多少,差了一个艾佛森吗?" android:textSize="16dp" /> <TextView android:id="@+id/tv_pv" android:layout_height="40dp" android:layout_width="0dp" android:layout_weight="1" android:textColor="#808080" android:textSize="12dp" android:text="19665" android:gravity="right|center_vertical" /> </LinearLayout> <View android:layout_height="1dp" android:layout_width="match_parent" android:background="#dedede" /> </LinearLayout>最后是MainActivity.cs
namespace DrawerLayout { [Activity(Label = "ListViewDemo", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { int count = 1; private List<News> data; private Context context; private NewsAdapter adapter; private ListView lv_test; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); data = new List<News>() { new News ("加内特的历史地位能在NBA排第几,超越德国战车?",1200), new News ("盘点新赛季最期待的十场比赛,无湖人比赛?",560), new News ("库里新赛季铁定无缘常规赛MVP",158200), new News ("我服,库里,杜兰特,汤普森谁才是出手的最佳选择",900), new News ("易建联的出场时间你能猜出来吗,大概多少",960), new News ("卡戴珊三姐妹睡多少男人",960), new News("科比退役后湖人到底失去多少中国的粉丝",4986), new News("科比退役湖人签中国篮球当家背后隐藏了多少阴谋",65987) }; adapter = new NewsAdapter(data,this); lv_test = FindViewById<ListView>(Resource.Id.lv_test); //View lv_header = LayoutInflater.Inflate(Resource.Layout.lv_header, null); //lv_test.AddHeaderView(lv_header); lv_test.Adapter = adapter; lv_test.ItemClick += (s, e) => { OnClick(e.Position); }; } public void OnClick(int position) { position--; Toast.MakeText(this,$"这条新闻有"+data[position].Pv+"次浏览量",ToastLength.Short).Show(); } } }
一个最简单的listview绑定数据就这么简单的。后面将会介绍几个比较常用额属性和方法
2.xamarin android ListView表头表尾分割线的设置:
listview可以自己设置表头表位,以及分割线,下面看一看具体的方法:divider:设置分隔条,当设置为@null时则没有分隔条,设置的值可以是颜色代码,也可以是drawable资源分割
dividerHeight:设置分隔条的高度
footDividersEnabled:是否在footerView 表尾前绘制一个分隔条,默认为true
headerDividerEnabled同上
这里我参考的csdn-pig写的android博客,设置listview 表头表尾丙没有这种属性,只用以下几个方法
AddHeaderView(View v):添加headerView 表头,View v参数是一个布局页
AddHeaderView(headerView,null,false):添加headerView 表头,设置header是否可以选中
AddFooterView(View v):同上
AddFooterView(headerView,null,false):同上
除了以上几个属性我们还可以设置listview的点击效果等
stackFromBottom:设置列表放在最下面,默认为的false
cacheColorHint:如果你的Listview的Background是一张图片的话,当你拖动和点击ListView Item空白位置会发现item都变成黑色了,这个时候设置cacheColorHint设置为透明#00000000 ,6个0的是黑色
隐藏滚动条 android:scrollbars="none
关于listview的简单的用法就这么了,当然这是最基础的,还有很多问题需要去探索,listview 单击项的效果,listview控件的优化。。。。。。
listview demo 下载链接 :
ListView例子源码下载
相关文章推荐
- xamarin android listview的用法
- Android ListView常用用法
- androidUI第四部分---1.4.2ListView用法—利用SimpleAdapter生成ListView
- Android ListView常用用法
- 【Android基本控件】ListView 的用法
- android listview高级用法
- Android ListView用法(1),不用ListActivity实现
- Android基础教程之---ExpandableListView基本用法
- Android ListView常用用法
- android listview 中级用法
- [Android] Adapter:SimpleAdapter SimpleCursorAdapter ArrayAdapter 与ListView的用法
- androidUI第四部分---1.4.3ListView用法—利用CursorAdapter生成ListView
- Android ListView常用用法
- 转载 android listView 用法
- Android中ListView中有button,checkbox,GridView的用法
- androidUI第四部分--1.4.1ListView用法—利用ArrayAdapter生成ListView
- ListActivity/ListView用法 与 @+id/ 与 @android:id 关系小解
- Android ListView控件基本用法 (转载)
- 【Android基本控件】ListView 的用法
- Android ListView 自定义用法(ListView 实现单选功能)