前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2014-10-27Android学习------布局处理(五)------ListView布局继续学习-----城市列表应用程序

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

作者头像
wust小吴
发布2022-03-07 08:31:07
3950
发布2022-03-07 08:31:07
举报
文章被收录于专栏:风吹杨柳风吹杨柳

我学习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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档