Android Launcher中Fold的功能详解【android4.0-->Launcher系列三】
?????????????????????????
?
下面来看看4.0的代码怎么实现文件夹的:
?
Step 1:如果系统一开始有fold,一启动launcher的时候,在Launcher.java类中bindFolders回调方法中:
?
?
?
Step 3:folder类中的长按事件的传递,以及Fold中长按交换位置的流程过一下:
1、先来说给Folder设置长按监听的地方,因为Folder.java类是继承了View.OnClickListener,
??????? View.OnLongClickListener事件,所以,长按事件就交给自己的onLongClick()事件来处理。
?
2、所以Folder中的长按事件,被自己的public boolean onLongClick(View v) {}时间捕获,代码如下:
private void updateItemLocationsInDatabase() { ArrayList<View> list = getItemsInReadingOrder(); for (int i = 0; i < list.size(); i++) { View v = list.get(i); ItemInfo info = (ItemInfo) v.getTag(); LauncherModel.moveItemInDatabase(mLauncher, info, mInfo.id, 0, info.cellX, info.cellY); } }?好了,folder的大致流程就是这些,更详细的请参考launcher源代码。
写的仓促,欢迎大家指出里面的错误,如果有不解的欢迎留言!
本文转载自:http://blog.csdn.net/wdaming1986/article/details/7748738