xamarin android listview的用法(转载 https://blog.csdn.net/kebi007/article/details/52650729)

xamarin android listview的用法

版权声明:本文为博主原创文章,未经博主容许转载随意。 https://blog.csdn.net/kebi007/article/details/52650729

listview也许是用的很是频繁的一个控件之一,下面我写一个xamarin的listview栗子,你们尝一尝xamarin android开发的乐趣。原谅个人大小写吧.javascript

listview绑定自定义的BaseAdapter

先来看一下最终实现的效果图:php

News.cs 和NewAdapter.cscss

      
      
      
      
      
  1. namespace DrawerLayout.Adapter
  2. {
  3. public class News {
  4. public int Pv { get; set; }
  5. public string Title { get; set; }
  6. public News(string title,int Pv)
  7. {
  8. this.Title = title;
  9. this.Pv = Pv;
  10. }
  11. }
  12. public class NewsAdapter : BaseAdapter
  13. {
  14. private List<News> data;
  15. private Context context;
  16. public override int Count
  17. {
  18. get
  19. {
  20. return data.Count;
  21. }
  22. }
  23. public NewsAdapter(List<News> data,Context context)
  24. {
  25. this.data = data;
  26. this.context = context;
  27. }
  28. public override Java.Lang. Object GetItem(int position)
  29. {
  30. return null;
  31. }
  32. public override long GetItemId(int position)
  33. {
  34. return position;
  35. }
  36. public override View GetView(int position, View convertView, ViewGroup parent)
  37. {
  38. convertView = LayoutInflater.From(context).Inflate(Resource.Layout.lv_test,parent, false);
  39. TextView title = convertView.FindViewById<TextView>(Resource.Id.tv_title);
  40. TextView pv = convertView.FindViewById<TextView>(Resource.Id.tv_pv);
  41. pv.Text = data[position].Pv.ToString();
  42. title.Text = data[position].Title;
  43. return convertView;
  44. }
  45. }
  46. }

listview布局lv_test.axmlhtml

 

 

      
      
      
      
      
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation= "vertical"
  4. android:layout_width= "match_parent"
  5. android:layout_height= "match_parent"
  6. android:background= "#ffffff"
  7. android:padding= "10dp">
  8. <LinearLayout
  9. android:id= "@+id/layout_content"
  10. android:layout_width= "match_parent"
  11. android:layout_height= "60dp"
  12. android:orientation= "horizontal"
  13. android:gravity= "center_vertical">
  14. <TextView
  15. android:id= "@+id/tv_title"
  16. android:layout_height= "50dp"
  17. android:layout_width= "0dp"
  18. android:layout_weight= "5"
  19. android:textColor= "#000000"
  20. android:text= "加内特的历史地位比邓肯差多少,差了一个艾佛森吗?"
  21. android:textSize= "16dp" />
  22. <TextView
  23. android:id= "@+id/tv_pv"
  24. android:layout_height= "40dp"
  25. android:layout_width= "0dp"
  26. android:layout_weight= "1"
  27. android:textColor= "#808080"
  28. android:textSize= "12dp"
  29. android:text= "19665"
  30. android:gravity= "right|center_vertical" />
  31. </LinearLayout>
  32. <View
  33. android:layout_height= "1dp"
  34. android:layout_width= "match_parent"
  35. android:background= "#dedede" />
  36. </LinearLayout>

最后是MainActivity.csjava

      
      
      
      
      
  1. namespace DrawerLayout
  2. {
  3. [ Activity(Label = "ListViewDemo", MainLauncher = true, Icon = "@drawable/icon")]
  4. public class MainActivity : Activity
  5. {
  6. int count = 1;
  7. private List<News> data;
  8. private Context context;
  9. private NewsAdapter adapter;
  10. private ListView lv_test;
  11. protected override void OnCreate(Bundle bundle)
  12. {
  13. base.OnCreate(bundle);
  14. SetContentView(Resource.Layout.Main);
  15. data = new List<News>() {
  16. new News ( "加内特的历史地位能在NBA排第几,超越德国战车?", 1200),
  17. new News ( "盘点新赛季最期待的十场比赛,无湖人比赛?", 560),
  18. new News ( "库里新赛季铁定无缘常规赛MVP", 158200),
  19. new News ( "我服,库里,杜兰特,汤普森谁才是出手的最佳选择", 900),
  20. new News ( "易建联的出场时间你能猜出来吗,大概多少", 960),
  21. new News ( "卡戴珊三姐妹睡多少男人", 960),
  22. new News( "科比退役后湖人到底失去多少中国的粉丝", 4986),
  23. new News( "科比退役湖人签中国篮球当家背后隐藏了多少阴谋", 65987)
  24. };
  25. adapter = new NewsAdapter(data, this);
  26. lv_test = FindViewById<ListView>(Resource.Id.lv_test);
  27. //View lv_header = LayoutInflater.Inflate(Resource.Layout.lv_header, null);
  28. //lv_test.AddHeaderView(lv_header);
  29. lv_test.Adapter = adapter;
  30. lv_test.ItemClick += (s, e) =>
  31. {
  32. OnClick(e.Position);
  33. };
  34. }
  35. public void OnClick(int position)
  36. {
  37. position--;
  38. Toast.MakeText( this, $"这条新闻有"+data[position].Pv+ "次浏览量",ToastLength.Short).Show();
  39. }
  40. }
  41. }


一个最简单的listview绑定数据就这么简单的。后面将会介绍几个比较经常使用额属性和方法python

 

 

2.xamarin android ListView表头表尾分割线的设置:

 

listview能够本身设置表头表位,以及分割线,下面看一看具体的方法:mysql

  • divider:设置分隔条,当设置为@null时则没有分隔条,设置的值能够是颜色代码,也能够是drawable资源分割
  • dividerHeight:设置分隔条的高度
  • footDividersEnabled:是否在footerView 表尾前绘制一个分隔条,默认为true
  • headerDividerEnabled同上

这里我参考的csdn-pig写的android博客,设置listview 表头表尾丙没有这种属性,只用如下几个方法react

 

  • AddHeaderView(View v):添加headerView 表头,View v参数是一个布局页
  • AddHeaderView(headerView,null,false):添加headerView 表头,设置header是否能够选中
  •  
  • AddFooterView(View v):同上
  • AddFooterView(headerView,null,false):同上

除了以上几个属性咱们还能够设置listview的点击效果等android

 

 

  • stackFromBottom:设置列表放在最下面,默认为的false
  • cacheColorHint:若是你的Listview的Background是一张图片的话,当你拖动和点击ListView Item空白位置会发现item都变成黑色了,这个时候设置cacheColorHint设置为透明#00000000 ,6个0的是黑色
  • 隐藏滚动条 android:scrollbars="none

关于listview的简单的用法就这么了,固然这是最基础的,还有不少问题须要去探索,listview 单击项的效果,listview控件的优化。。。。。。web

 

listview demo 下载连接 : ListView例子源码下载

有兴趣的能够关注一下个人微信公众号,分享一些编程相关的经典文章

股神狱中曝出庄家洗盘规律,牢记这3点,看完焕然大悟 南针信息 · 顶新
  • qq_33182090
    文佳铭: 在MainActivity.cs文件中,第28行代码最后的Resource.Id.lv_test这是绑定listview控件,但博客上只定义了listview但在xaml中未出现过 (1年前 #3楼) 举报回复
  • 上一页
  • 1
  • 下一页
重磅!近期又出一股市怪才!50万资金入市,现在身家过亿! 南针信息 · 顶新
股神狱中曝出庄家洗盘规律,牢记这3点,A股就是提款机 南针信息 · 顶新
揭秘:静脉曲张竟是身体缺了它?饭后吃点它,静脉曲张再也不来 京宛协同 · 猎媒
老中医:有多少人知道,原来它才是痔疮的克星! 九龙 · 猎媒
如何知足她?老中医说;教你一招,让女人双腿发抖! 同舟 · 猎媒
股市大消息,中国版纳斯达克来了,对A股意味着什么? 龙周刊 · 顶新
股神狱中曝出庄家洗盘规律,牢记这3点,看完焕然大悟 南针信息 · 顶新

没有更多推荐了,返回首页

相关文章
相关标签/搜索