杂谈

来源:互联网 发布:m1005找不到扫描软件 编辑:程序博客网 时间:2024/06/06 02:46

1、layout_weight

  使用线性布局的layout_weight=1时候内部控件宽度设置为0dp,因为weight权重分的是剩余空间(高度或者宽度)
还比如:当设置height=0dp layout_weight=1时候,该控件会填满剩余空间。

2、gravity 、layout_gravity
  gravity = center 和 layout_gravity = center 的区别是:第一个代表所包含子view居中显示,第二个是它在它的父view中居中显示。

3、eclipse快捷键

   ctrl+H 搜索该字段在整个程序中出现的位置   F4看类继承关系  对于接口Ctrl+ openImplementation 可以查看该接口的实现类

4、Ant build

   可以直接对build.xml文件右键run as Ant Build,
   如果失败打开ant视图,Add buildfiles,将带有build.xml的文件添加到ant视图中,打开default build part 右键 run as Ant Build.

5、Java八种基本数据类型所占字节

数据类型  字节数
byte      1字节
short     2字节
char      2字节(C语言中是1字节)
float     4字节
int       4字节
long      8字节
double    8字节
boolean   false/true

6、Fragment的使用

两种方式:

一、support.v4,继承fragmentActivity ,getSupportFragmentManager。

二、app.fragment,继承activity,getFragmentManager

如果fragment导入的是v4包里面的,那么所有fragmentManager也要导入v4包里面的

7、事件分发

    dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发,然后决定是自身消费当前事件还是继续往下分发给子控件处理。
    返回true表示不继续分发,事件没有被消费。返回false则继续往下分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件。
    onTouchEvent方法用于事件的处理,返回true表示消费处理当前事件,返回false则不处理,交给子控件进行继续分发。
    onInterceptTouchEvent是ViewGroup中才有的方法,View中没有,它的作用是负责事件的拦截,
    返回true的时候表示拦截当前事件,不继续往下分发,交给自身的onTouchEvent进行处理。
    返回false则不拦截,继续往下传。
    这是ViewGroup特有的方法,因为ViewGroup中可能还有子View,而在Android中View中是不能再包含子View。

8、代码优化

   1、TextView尽量宽度不要写wrap_content,尤其是在listView的item中!因为如果每项item的text长度不一,每次都要去计算宽度,很耗性能!listVIew会非常卡顿!
   2、排除法解bug
     例如:listview卡顿,首先把所有可能出现问题的语句都注释掉,看看最终执行的是哪句话出现的卡顿现象,然后再分析这句话有什么问题!

9、解决eclipse的 Invalid project description. overlaps the location of another project: 问题

原因:
下载工程时把该工程放在了workspace目录下。eclipse插件在创建项目的时候需要在workspace目录下创建一个同名的目录。
 但发现workspace目录下已存在对应的目录时,就会报上面的处错误信息了。

解决方法:
把工程从workspace中移出来(剪切不是复制)就可以了,重新导入就可以了,同时copy 一份到workSpace中。

10、popUpWindow获取焦点并且点击外部消失
        mPopupWindow = new PopupWindow(gridView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT,true);
        mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
        mPopupWindow.setOutsideTouchable(true);

        true代表获取焦点,outSideTouchable点击外部window消失,一定要设置backgroundDrawable


0 0
原创粉丝点击