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

来源:互联网 发布:问卷星可以分析数据吗 编辑:程序博客网 时间:2024/05/17 09:06

我学习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.自定义控件的写法  (应用中插入广告的时候经常用这种方式吧)
        <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 0
原创粉丝点击