Android中一些小的知识点
来源:互联网 发布:msp430单片机价格 编辑:程序博客网 时间:2024/06/05 20:37
这篇博文是专门用来记录Android中哪些不常使用到的小知识
1.设置ListView的EmptyView,ListView设置EmptyView,当ListView没有数据时就会显示这个布局
2.SystemClock.sleep(2000) 睡眠一秒,这个方法是不会抛出异常的
3.实时监听EditText的字符输入 editText.addTextChangeListener()
4.ListView中设置分割线
<ListView android:layout_width="match_parent" android:layout_height="200dp" <!-- 在这里面如果你设置divider而不设置dividerHeight的话,是无法显示分割线的 --> android:divider="@android:color/darker_gray" android:dividerHeight="2dp"> </ListView>
5.compile ‘com.jakewharton:butterknife:6.1.0’
6.如果使Activity单独占用一个任务栈,设置Activity的启动模式为SingleTask
7.设置某个Activity的excludeFromRecents:是否从最新列表中移除Activity所在的应用, 只有设置这个属性的Activity执行了,这个属性才会生效
8.内容观察者
//当数据库发生变化时通知//注册内容观察者观察更新通知消息、Uri uri = Uri.parse("content://com.itheima.mobliesafe95.UPDATESQLITE");//notifyForDescendents : 匹配模式,true:精确匹配,false:模糊匹配getContentResolver().registerContentObserver(uri, true, new ContentObserver(null) { //当数据库中的数据更新的时候调用的方法 public void onChange(boolean selfChange) { list.clear(); list = appLockDao.queryAll(); }; });//当数据删除成功的时候,发送一个数据更新的消息,告诉内存观察者,这样内容观察者就可以观察到数据的变化,实现更新数据库操作ContentResolver contentResolver = mContext.getContentResolver();Uri uri = Uri.parse("content://com.itheima.mobliesafe95.UPDATESQLITE");//uri : uri地址//observer : 通知哪个内容观察者,如果是null,表示通知所有通过uri地址注册内容观察者contentResolver.notifyChange(uri, null);//通知内容观察者数据发生变化了
9.图片截取
如果想要将图片的右半部分截取出来可以使用matrix.postTranslate(-width,0) 向左平移图片的一半,也就是将画布移动,而不是移动图片
10.两个集合对象指向一个集合,一个集合在遍历时,可以使用另一个集合删除其中的数据,间接的实现了边遍历边删除,但是不能使用增强for循环,那样会报错
11.Android系统中控件绘制显示流程一般为三个步骤:1:测量宽高, 2:设置显示位置,3:绘制显示操作 只有经过了这三个步骤控件才会显示在界面上。
12.关于设置边距的问题
public class PullToRefreshListView extends ListView { private TextView tvState; private ProgressBar progressBar; private ImageView ivImage; int i = 0; private View mHeaderView; public PullToRefreshListView(Context context) { this(context, null); } public PullToRefreshListView(Context context, AttributeSet attrs) { this(context, attrs, -1); } public PullToRefreshListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setHeaderView(); } private void setHeaderView() { mHeaderView = View.inflate(getContext(), R.layout.header_view, null);// this.addHeaderView(mHeaderView); tvState = (TextView) mHeaderView.findViewById(R.id.textView); progressBar = (ProgressBar) mHeaderView.findViewById(R.id.progressBar); ivImage = (ImageView) mHeaderView.findViewById(R.id.imageView); mHeaderView.measure(0, 0); mHeaderView.setPadding(0, -mHeaderView.getMeasuredHeight(), 0, 0);// 1 this.setPadding(0, 100, 0, 0); // 2 }}
上面代码中有两个setpadding,但其意义却不相同
1:代表的是该HeaderView在ListView中的相对于ListView来说的间距。
2:代表的是ListView中内容相对于ListView的间距。
13 . 如果ListView设置了头布局和脚布局都算是一个内容项会算进 count数
14 : requestDisallowInterceptTouchEvent(true) 请求父类不拦截本View触摸事件,后期通过视频得知, down事件是无法被拦截的,只能被消费。后通过实践得知确实可行,这个特性解决了SlidingMenu与ViewPager首页的滑动冲突。
- Android中一些小的知识点
- Android的一些小知识点
- android的一些小知识点
- Android 小笔记 一些小的知识点
- android平时编码的一些小知识点
- Android 内存的一些小知识点
- Android中的一些小知识点
- android 开发中遇到的一些小的知识点在此做一个记录(持续更新)
- VC中一些小知识点
- Android 中 getString() 方法的小知识点
- Android学习中一些零散的知识点
- Android中关于状态栏的一些知识点
- Swift中一些小技巧、小知识点
- Android开发中的一些小的知识点总结
- ios一些开发中遇到的小知识点
- java中面向对象的一些小知识点(二)
- RSS的一些小知识点
- JSP的一些小知识点
- HDU5317:RGCDQ (数学 & 二分)
- 手写一个bind
- js对象基础知识和程序设计
- jFinal项目不能实例化JFinalConfig的子类
- struts2文件上传和下载
- Android中一些小的知识点
- JZOJ 5409【NOIP2017提高A组集训10.21】Fantasy(主席树版)
- c语言学习心得
- setTimeout的this指向:学习apply、call、bind
- Fliptile
- C++虚函数原理及其使用限制
- html怎样实现数据列表的下拉效果
- 软件工程名词
- 模板总结