2014-10-27Android学习------布局处理(五)------ListView布局继续学习-----城市列表应用程序

2022-03-07 08:31:07 浏览数 (1)

我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,这一期学习源码是网上找的个CityList 源码 百度搜就知道很多下载的地方

废话不说了 先必须看下程序运行的结果是是么样子的,来吧,看下图:

程序显示给用户看的就只有两个activity,两个视图(界面),

第一个图展示的是:主程序的activity 界面上只有一个按钮,

第二个图展示的是:城市列表,和 一个拼音列表 点击拼音列表可以搜索,快速进入到该字母的第一个城市

城市的数据是放置在一个数据库,这里先不介绍。

那么我先画画,这个界面布局该怎么去实现它:

接下来看第二个界面:

这里要学习的布局知识就多了。有如下几点:

1.android:cacheColorHint=“#00000000”

listView.setCacheColorHint(0); 或者android:cacheColorHint="#000000" 去除listview的拖动背景色 自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:

什么叫自定义ListView,就是你不使用系统的id号 @id/android:list 而是自己去定义一个id

这里还需要讲一个属性就是选中是什么颜色:android:listSelector=""

当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:

有的人模拟器可能不是橙黄底色,比如我的就是一种灰色调的选中色

特别提供:

ListView是一个经常要用到的android控件,现总结遇到过的一些美化的小细节。 1)、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来 解决:在XML中加入 android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″ 2)、listview的上边和下边有黑色的阴影 解决: android:fadingEdge=”none” 3)、修改listview的Item默认选择时的黄色背景 解决:在java文件中使用listview.setSelector()方法, android:listSelector="#00000000"//这样写是透明的,也可加入Drawable图片 4)、lsitview的每一项之间需要设置一个图片做为间隔 解决: android:divider=”@drawable/list_driver”

2.android:scrollbars属性

自由控件已经超过了布局的大小就会滚动 这个布局的大小就是指一屏

内容长度要超出整屏的高度就能实现滑动有以下设置none(隐藏),horizontal(水平),vertical(垂直)

这里面涉及到一个效果的问题:有很多时候我们发现这个设置好像没有效果,到底出了什么问题呢?这个还是等到碰到之后再说吧,今天这里先不涉及了

3.自定义控件的写法 (应用中插入广告的时候经常用这种方式吧)

代码语言:javascript复制
        <com.wust.citylist.activity.MyLetterListView
            android:id="@ id/cityLetterListView"
            android:layout_width="30dip"
            android:layout_height="fill_parent"
            android:layout_alignParentRight="true"
            android:background="#40000000" />
首先那个控件的名字是一个类名:

看下文件工程:

再讲一个30dip 这个dip=dp 前面我们有说到 控件的大小设置最好用dp 文字的大小设置最好用sp

到这里为止:我们的程序界面基本就结束了 我们看下预览效果:

写到这里肯定有人会问啊?我还是不懂你这个字母怎么放上去的啊?不是说相对布局里面只有一行吗?相对布局里面放置了两个控件

一个是自己定义的ListView ,一个是自己定义的类(自定义控件),只不过这个类也是继承了import android.view.View;

你看下它的名字就知道了:MyLetterListView --------》ListView

也就是说相当于在这个相对布局里面我们放置了两个元素,应该说这两个元素都是ListView

所以他就呈现了这样一个布局

那么接下来就需要搞清楚这个字母布局列表是怎么实现的,请看下篇文章

0 人点赞