ListView继承自AbsListView

AbsListView属性

XML属性 代码 说明
 android:choiceMode

setChoiceMode(int choiceMode)

AbsListView.CHOICE_MODE_SINGLE
AbsListView.CHOICE_MODE_MULTIPLE
AbsListView.CHOICE_MODE_MULTIPLE_MODAL

none :无选择模式

singleChoice:允许单选

multipleChoice:允许多选

multipleChoiceModal:允许多选

好像要用android.R.layout.simple_list_item_checked才有效果

ArrayAdapter<String> items=
new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_checked, new String[]{"浙江","上海","北京"});
lv.setAdapter(items);

 android:drawSelectorOnTop  setDrawSelectorOnTop(boolean onTop) 

设置为true, 按住记录不放,颜色会覆盖文字,文字就不是很清楚了

true效果

false效果

不知道这样做的用意是什么?

 android:fastScrollEnabled  

是否显示快速滚动的按钮,右边那个蓝色的就是,手指快速滚动的会后会显示出来

 android:listSelector  setSelector(Drawable sel) 

在选中的记录上绘制drawable,如果设置android:drawSelectorOnTop为true,

则该条记录会被完全覆盖,包括后面的√

 android:scrollingCache  

当为真时,列表滚动使用绘图缓存。该选项使渲染更快,但占用更多的内存。 默认值为真

不知道有什么用

 android:smoothScrollbar  setSmoothScrollbarEnabled(boolean enabled)

完全看不懂

为真时,列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法。 默认该属性为真,如果你的适配器需要绘制可变高的条目,他应该设为假。 当该属性为真时,你在适配器在显示变高条目时,滚动条的把手会在滚动的 过程中改变大小。当设为假时,列表只使用适配器中的条目数和屏幕上的 可见条目来决定滚动条的属性

 android:stackFromBottom  setStackFromBottom(boolean stackFromBottom)

从底部开始显示

 android:textFilterEnabled  setTextFilterEnabled(boolean textFilterEnabled)

是否启用过滤,只有adapter设置了filter时才有效果

这样设置

        ArrayAdapter<String> items=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_checked,list);items.getFilter().filter("测试9");

效果,只显示带 测试9的条目了

 android:transcriptMode

setTranscriptMode(int mode)

AbsListView.TRANSCRIPT_MODE_DISABLED
AbsListView.TRANSCRIPT_MODE_NORMAL
AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL

属性

disabled:

normal:添加记录时当最后一列可见时会自动往下滚动

alwaysScroll:添加记录时,直接滚动到最后一条新增加的记录

如何增加记录呢

如下:

        btn=(Button)findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {public void onClick(View v) {//list里增加记录list.add("新增加的");//刷新记录
                items.notifyDataSetChanged();}});

效果:添加后直接滚动到最后了,这个效果还不错

ListView属性

XML属性 代码 说明
android:divider  setDivider(Drawable divider)  分隔条
android:dividerHeight  setDividerHeight(int height)

分隔条高度

android:entries  

直接指定资源文件,代码都不用写了

array1.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="items"><item >测试1</item><item >测试2</item><item >测试3</item><item >测试4</item></string-array>
</resources>

    <ListViewandroid:id="@+id/listView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/color1"android:entries="@array/items"/>

 android:footerDividersEnabled  setFooterDividersEnabled(boolean footerDividersEnabled)

设置为false,则不再footer和view之间绘制分隔线

1.添加footer按钮

        View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.footer, null);//必须在setAdapter前设置,否则没效果lv.addFooterView(view);    

2.设置为true时

3.设置为false时,footer前少了根线

android:headerDividersEnabled

setHeaderDividersEnabled(boolean headerDividersEnabled)

设置为false,则不在header和view之间绘制分隔先

例子1

listview最后增加一个加载更多的按钮

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><!-- android:transcriptMode 设置成alwaysScroll,这样点击添加按钮后会自动滚动到最后 --><ListViewandroid:id="@+id/listView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:choiceMode="singleChoice"android:background="@color/color1"android:divider="#000"android:dividerHeight="1dp"android:transcriptMode="alwaysScroll"></ListView>
</LinearLayout>

View Code

footer.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent" ><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:text="加载更多" /></RelativeLayout>

View Code

MainActivity.java

public class MainActivity extends Activity {ListView lv;Button btn;ArrayList<String> list;ArrayAdapter<String> items;int index=1;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv=(ListView)findViewById(R.id.listView1);list=new ArrayList<String> ();for(int i=1;i<=10;i++){list.add("测试"+index);index=index+1;}items = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_checked,list);View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.footer, null);btn=(Button)view.findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {public void onClick(View v) {for(int i=1;i<=10;i++){list.add("测试"+index);index=index+1;}items.notifyDataSetChanged();}});//必须在setAdapter前设置,否则没效果
        lv.addFooterView(view);        lv.setAdapter(items);}
}

View Code

转载于:https://www.cnblogs.com/weijj/p/3951326.html

安卓学习-界面-ui-ListView相关推荐

  1. 安卓学习总结-UI开发流程

    最近做的工作,主要是对安卓的一系列UI组件的开发,在完成设计需求的过程中,对UI开发流程有了一点小想法,今天来把他们总结一下. UI开发流程图 一.了解安卓中的View体系 在UI开发的过程中,我们一 ...

  2. 安卓学习-界面-View的自定义

    android的所有UI控件,都是基于View的,因此特意重点学习了下这个,为后面学习其他控件打下基础. 参照了疯狂android讲义和http://blog.csdn.net/guolin_blog ...

  3. 安卓学习 之 UI控件(三)

    一.常用控件 1.TextView(文本) match_parent:控件与父类相同(基本不用fil_parent)wrap_content:刚好包裹里面内容. android:gravity调节文字 ...

  4. 安卓学习-界面-布局-FrameLayout

    类似于动画里的帧布局,是一层一层的 FrameLayout直接继承了ViewGroup,常用的XML属性 属性 方法 说明 android:foreground setForeground(Drawa ...

  5. 安卓学习-界面-ui-RadioButton CheckBox

    RadioButton  CheckBox 下面例子演示了2个功能,一个是RadioButton选择时的事件,还有一个是Button按钮点击查看这2个控件的属性 XML代码 <RelativeL ...

  6. 安卓学习-界面-ui-Toast

    Toast提示信息,直接上例子 两个按钮,第一个是普通的,第二个是自定义的    view1.xml 自定义视图 <LinearLayout xmlns:android="http:/ ...

  7. java实现图形界面输入半径求圆面积_测试开发工程师系列之Android自动化测试Appium(Python)连载(7)安卓图形界面...

    安卓图形界面 UI即User Interface(用户界面)的简称.泛指用户操作界面,包含移动APP,网页,智能穿戴设备等.Android用户界面测试,要测试应用程序如何与一个真实的用户交互.这种测试 ...

  8. 安卓学习笔记3——登录界面UI

    安卓学习笔记3--登录界面UI 一.登录界面UI 1.根据需求写UI 2.主活动 3.主活动调用的读写文件的工具类 4.效果展示 二.总结与改进 不足: 1.密码分割采用字符串:当密码和用户名包含该字 ...

  9. app界面设计是什么?需要学习什么UI软件

    什么是app界面设计?其实app界面设计,又称为UI设计.我们常说的UI设计,其实是一种针对软件的人机交互.操作逻辑.界面美观的整体设计. UI设计师必须掌握的一项技能,就是会使用app界面UI设计软 ...

最新文章

  1. quot;正统quot;函数式编程 两个规则
  2. C++读写局域网共享
  3. Database之SQLSever:SQLSever基础知识进阶、软件安装注意事项、软件使用经验总结之详细攻略
  4. 阿里云邀您参加2020年数据湖高峰会议
  5. 编写高性能Web应用程序的10个技巧
  6. 【剑指offer】二叉树的深度_solution2
  7. CentOS6安装tomcat6
  8. android:contentDescription
  9. php +html5 websocket 聊天室
  10. 聊聊flink的BlobServer
  11. 时间管理 SMART 与 四象限
  12. WCF热带鱼书学习手记 - ABC
  13. 自己常用的分页SQL
  14. LaTeX之表格中强制换行
  15. AUTOCAD 绘图技巧
  16. wps页眉怎么设置不同页码_WPS中怎么给单独一页设置页眉?
  17. pandas_计算年化收益率
  18. [附源码]java毕业设计咖啡销售管理系统-
  19. 【华为OD】| 网上商城优惠活动_逻辑分析
  20. 如何产生创业想法(3 个框架)

热门文章

  1. 2005年你看过的,认为比较好的书,请大家一起来评评
  2. Linux09-网络配置
  3. nacos动态配置数据源_Jasper 怎么配置动态数据源
  4. 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
  5. 全面访问JavaScript的最佳资源
  6. android5.0后新特性修改标题头,Android5.0中Material Design的新特性
  7. UI培训分享:学UI设计需要知道哪些事情?
  8. ContentProvider访问问题
  9. 通过一个案例理解 JWT
  10. 《Android应用开发攻略》——1.3 从命令行创建 “Hello, World”应用程序