.常用的UI布局

3.常用的UI布局
1).LinearLayout:线性布局
用来控制其子View以水平或垂直方式展开显示
2).RelativeLayout
:相对布局
用来控制其子View以相对定位的方式进行布局显示
3).FrameLayout
:帧布局
每一个子View都代表一个画面,后面出现的会覆盖前面的画面
通过子View的android:layout_gravity属性来指定子视图的位置


4.常用的视图标签的属性
1).视图的常用属性
id:为控件指定相应的ID @+id/idname
layout_width: 指定当前视图的宽度
layout_height: 指定当前视图的宽度
text: 指定控件当中显示的文字
textSize: 指定控件当中字体的大小 
background: 指定该控件所使用的背景(图片.颜色)
layout_gravity: 控件本身相对于父视图的位置
grivity: 指定控件中的内容的基本位置


内边距属性
android:padding
android:paddingLeft
android:paddingTop
android:paddingRight
android:paddingBotton


外边距属性


android:layout_margin
android:layout_marginLeft
android:layout_marginTop
android:layout_marginRight
android:layout_marginBotton


2).只针对RelativeLayout
相对兄弟试图定位
android:layout_alignLeft
android:layout_alignTop
android:layout_alignRight
android:layout_alignBotton
反方向对齐属性
android:layout_toLeftOf
android:layout_toTopOf
android:layout_above
android:layout_below


相对父视图定位
与父视图同方向对齐属性
android:layout alignParentLeft
android: layout. alignParentTop
android: layout alignParentRight
android:layout alignParentBottom


相对父视图居中属性
android;layout centerInParent
android:layout tenterVertical
android; layout CenterHorizontal


3).只针对LinearLayout
orientation(方向)layout_ weight(权重)
layout_ weight(权 重)的值
=0(默认值):指定多大空间就占据多大的空间
>0:将父视图中的可用空间进行分割,传越大权重就越大,占据的比例就会越大
Layout_ weight的使用场景
将布局的宽度或高度平均分成几个等份
垂直方向上占用中间所有空间或水平方向上占用中间所有空间


5.ListView的使用
1).理解
ListView是-秧用来晶示多↑个可滑幼項(tem)列表的的ViwGroup
 需要使用Adapter将集合数据和毎-个ltem所対座的布局功杰活配到ListView中豆示一
湿示列表: listViewsetAdapter(adapter)
更新列表: adapter.notifyDataSetChanged()


2).使用
a. ArravAdapter :  显示简单文本列表
ArrayAdapter(Context context,  intresource, T[] objects)
b. SimpleAdpater :显示复杂列表
SimpleAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {
C. BaseAdpater (抽象的):显示复杂列表
int getCount() :得到集合数据的个数,决定了能显示多少行
0bject getI tem(int position) :根据position得到对应的数据对象
View getView(int positi on,  View convertView,ViewGroup parent)
//根据position返回对应的带数据的I tem视图对象
position:下标
convertView:可复用的Item视图对象
为null;没有可复用的我们必须加载一个item的布局文件,并赋值给convertView
不为null:直接使用视图对象
后面:找到子View,找到对应的数据,设置数据
parent : ListView
d.给ListView 的Item设置监听
item的点击监听:listView. setOnI temClickListener(listener)
item的长按监听:  listView. setOnI temLongClickListener (listener)


3).优化
第0层:不优化:
每次执行ketView(),都会执行:  converterView=View. inflate(R. layout. xxx);
问题:效率太低,在快速滑动时会有卡顿,在数据很多时甚至会内存溢出
第1层:复用converterView
if (converterView=nul1) {
converterView = View. inflate (R. layout. xxx); //n+1}
问题:每次执行ketVi ew()都需要执行converterVi ew. findVi ewById()得到子View
第2层:使用ViewHolder,减少findViemById0的次数
Viewholder holder = null;if(converterView==null){
converterView = View. inflate (R.1ayout. xxx);holder = newViewHolderO:
holder. imageView =(ImageVi ew) converterView findViewByIa(xxx);
ho1der. textView =(TextView) converterView findVi ewById(vyy)
converterVi ew. setTag(ho1der);
}e1se{
ho1der = Wi ewho1 derP converterView. getTag();}
Person pF data. get (posi ti on);
ho1 der. imaseView. setImageResource (p. getIcon());ho1 der. textView. setText (p. getName());
static class ViewHo1der {
ImageView imageView
TextView textView    }
//json: [0, 0]
问题1:对于联网获取列表数据,如果数据量太大(比如超过00000条
甚至更多),一次获取出来显示,太慢太耗流量:第四层优化
 问题2:  对于联网获取列表数据,如果包含图片数据,每次都请求获取显示,太慢太耗流量: 第三层优化
第3层优化:图片三级缓存处理(LRU)
1).内存缓存优先加载,速度最快2).本地缓存次优先加载,速度稍快
3).网络缓存最后加载,速度由网络速度决定(浪费流量)
第4层:对数据列表进行分页加载显示
1).  自己做:通过Scrol1监听
listView. setonScrolllistener (scolllistener),当到达底部时加载下一页列表数据并显示
2).使用第三方开源框架: Android-PullToRefresh 或其它


6. style和Theme
1). style :多个视图标签属性的集合
好处:复用标签属性
目标:布局文件中的视图标签
2). theme :本质也是style
好处:复用标签属性
目标:功能清单文件中整个应用/Activity I


7.练习
1).应用功能编码的基本流程外观:布局文件,读取数据,定义Adapter,显示列表
行为:设置事件监听,并在回调就去中作出对应的响应
2).初始显示列表和更新列表
3).GridView的基础使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
weifenluo.winformsui最新版是一个Windows窗体界面开发工具集,它为开发人员提供了丰富的界面设计和用户交互组件。该工具集具有易于使用、灵活性强、功能丰富的特点,可以帮助开发人员快速构建出漂亮、实用的Windows界面。 weifenluo.winformsui最新版包含了许多常用的界面控件,包括按钮、标签、文本框、下拉菜单等等,开发人员可以根据自己的需求选择适合的控件来构建界面。此外,工具集还提供了一系列常用布局管理器,如表格布局、流式布局等,可以帮助开发人员快速创建符合美观和界面一致性的界面。 除了基本的界面控件和布局管理器外,weifenluo.winformsui最新版还提供了一些高级的功能和组件,如图表控件、数据网格控件、数据输入验证等。开发人员可以利用这些功能和组件,为应用程序添加更多的交互性和实用性。 此外,weifenluo.winformsui最新版还提供了丰富的主题和样式,使开发人员能够轻松地改变界面的外观和风格。开发人员可以根据自己的喜好和应用程序的需求,选择适合的主题和样式,从而提升应用程序的用户体验。 综上所述,weifenluo.winformsui最新版是一个功能强大、易于使用的Windows窗体界面开发工具集,它为开发人员提供了丰富的界面控件、布局管理器和高级功能,可以帮助开发人员快速构建出漂亮、实用的Windows界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值