日常开发杂谈

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.

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

11、LRU

    Volley 在缓存方面,主要是使用了 LRU(Least Recently Used)算法,LRU 算法是最近最少使用算法,它的核心思想是当缓存满时,优先淘汰那些近期最少使用的缓存对象。主要的算法原理是把最近使用的对象用强引用的方式(即我们平常使用的对象引用方式)存储在 LinkedHashMap 中,当缓存满时,把最近最少使用的对象从内存中移除。

12、main方法参数

public static void main(String[] args){}

   传递的参数String[] args是通过命令行参数传递进去的,也就是通过命令行输入哪些参数,会保存在String[] args数组里面。

13、转义字符 \

      用法:""双引号内如果想打印双引号,system.out.println("i am \" super star \" ");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值