今日看了https://github.com/BlueMor/DragLayout DragLayout的代码,把v4包去除,发现他使用了3个类
import android.support.v4.view.GestureDetectorCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.widget.ViewDragHelper;
其中GestureDetectorCompat是手势操作类,比系统的GestureDetector强大
ViewCompat内容不多,没细读
ViewDragHelper类可以多view进行炫丽的操作:http://blog.csdn.net/jianghejie123/article/details/39315319
其中该类有个实用的方法:
//触摸点是否落在HeaderView上
boolean isHeaderViewUnder = mDragHelper.isViewUnder(mHeaderView, (int)x, (int)y);
(来自YoutubeLayout)
2.viewholder新写法
* SparseArray这个类,优化过的存储integer和object键值对的hashmap
* 只需静态调用get这个方法填入当前Adapter的 convertView 与 子控件的id,就可以实现复用。
* @author Administrator
*
*/
public class ViewHolder
{
@SuppressWarnings("unchecked")
public static <T extends View> T get(View view, int id)
{
SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
if (viewHolder == null)
{
viewHolder = new SparseArray<View>();
view.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (childView == null)
{
childView = view.findViewById(id);
viewHolder.put(id, childView);
}
return (T) childView;
}
}
private static class ViewHolder {
TextView tvLetter;
TextView tvTitle;
public ViewHolder(View view) {
tvTitle = (TextView) view.findViewById(R.id.tv_city_name);
tvLetter = (TextView) view.findViewById(R.id.tv_city_index);
}
}
因为上面的viewholder使用了SparseArraynew了变量,还需要用到里面的方法执行获取view,会慢一些,至于新写法的优点,需要研究挖掘。
javascript中 == 和 ===的区别
==和java的等于符合相同
===是严格相等的意思,比==高级,还要比较类型是否相等
!=和!==的区别
!= 和java一样,!==也比较类型
phonegap是跨平台移动应用html5开发平台