本文實例講述了android獲得當前view在屏幕中坐標的方法。分享給大家供大家參考。具體如下:
final int[] location = new int[2];view.getLocationOnScreen(location);
這樣就可以得到該視圖在全局坐標系中的x,y值,(注意這個值是要從屏幕頂端算起,也就是說包括了通知欄的高度)
//獲取在當前屏幕內的絕對坐標location[0] x坐標location[1] y坐標
應用 ,我們可以用來記錄上一次listview滾動到了那里
首先我們需要一個記錄當前滾動位置的全局變量:
然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中獲取 OldListY:
lstView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int Pos[] = { -1, -1 }; //保存當前坐標的數組 arg1.getLocationOnScreen(Pos); //獲取選中的 Item 在屏幕中的位置,以左上角為原點 (0, 0) OldListY = (float) Pos[1]; //我們只取 Y 坐標就行了 }});
最后要做的就是在 setAdapter() 后恢復先前的位置:
... lstView.setAdapter(adapter); // 重新綁定AdapterlstView.setSelectionFromTop(index, (int) OldListY); // 恢復剛才的位置
希望本文所述對大家的Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選