Android应用界面开发-控件+布局 笔记

Mostly used view

Web View

List View:显示列表-微信中的tabs

Grid View:比如表情图列表

Scroll View

Surface View :非UI线程,如在游戏中做一些耗时的操作


控件之间的布局

新建Layout 名字全都小写

xmlns xml name space //还可以自定义空间

LineanerLayout:horizontal or Vertical,排列组合顺序即text里控件的顺序 weightsum, weight比重,用来分配比例 

RelativeLayout:align 不同对齐用法;一个页面里不同button可叠加,后面的覆盖前面的。align 相对于其他控件来布局,用@+id/view_name 

margin 是外边距;padding 是内边距

FrameLayout 

AbsoluteLayout 要适应不同屏幕,不用

TableLayout //表格布局,做表格时会用到


Activity 生命周期

1. onCreate () // 完成初始化操作

2. onStart() // 活动由不可见变为可见的时候调用

3. onResume() // 活动准备好和用户进行交互的时候进行调用,此时活动位于返回栈最顶端,处于运行状态

4. onPause() // 系统准备去启动或恢复另一活动时调用。将一些消耗CPU的资源释放掉,保存一些关键数据 *这个方法的执行速度一定要快,不然会影响新的栈顶活动的使用

5. onStop() // 活动完全不可见时调用。区别onPause() 如果启用的新活动是一个对话框式的活动,那么onPause()会执行,而onStop()不会

6. onDestroy() // 被销毁前调用,之后活动状态将变为销毁状态

7. onRestart // 

1-6 完整生存期

2-5 可见生存期

3-4 前台生存期


ListView

ListView 让客户可以通过滑动,将页面外的数据展现出来

ListView 用于展示大量的数据。数据需要借助Adapter适配器来完成
ArrayAdapter 


第一行代码里的示例:

@Override


public View getView(int position, View convertView, ViewGroup parent) { //用于传递上下文,ListView 子项布局的id和数据

//重写getView,这个方法在每个子项被滚动到屏幕内的时候会被调用


Fruit fruit = getItem(position); // 获取当前项的Fruit实例


View view = LayoutInflater.from(getContext()).inflate(resourceId, null); // LayoutInflater 位这个子项加载传入的布局


ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image); 


TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);


fruitImage.setImageResource(fruit.getImageId()); //设置显示的文字和图片


fruitName.setText(fruit.getName());


return view; //返回布局

// 自定义的适配器完成

}

-->> 回到MainActivity

添加方法初始化数据,在构造函数中传入对应文字和图片,然后把创建好的对象添加到列表中在onCreate() 创建adapter对象,并将其作为适配器传递给ListView,完成定制ListView界面 


提升运行效率:convertView--用于将之前加载好的布局进行缓存,以便之后可以进行重用。

新增内部类ViewHolder, 用于对控件实例进行缓存,当convertView 为空的时候,创建一个ViewHolder 对象,并将控件的实例都存放在ViewHolder 里,然后调用View
的setTag()方法,将ViewHolder 对象存储在View 中。当convertView 不为空的时候则调用View 的getTag()方法,把ViewHolder 重新取出。这样所有控件的实例都缓存在了ViewHolder里,就没有必要每次都通过findViewById()方法来获取控件实例了。


ListView 点击事件:setOnItemClickListener() 


ListView部分参考《第一行代码》


= = ||| 这周学的我要狗带了,滚回去补习Java。。。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值