0
我想滾動到特定項目,具體取決於用戶點擊的位置。我所有的列表視圖都是不同的高度。請看下面的圖片。滾動ListView到點擊座標,如QQ
因此,如果在列表項1,用戶點擊允許假設,所以它的底部應該滾動,直到softkeyboard的頂部。
項目和鍵盤的高度各不相同。我已嘗試getTop
,getHeight
,getMeasuredHeight
,但迄今沒有任何工作。
我想滾動到特定項目,具體取決於用戶點擊的位置。我所有的列表視圖都是不同的高度。請看下面的圖片。滾動ListView到點擊座標,如QQ
因此,如果在列表項1,用戶點擊允許假設,所以它的底部應該滾動,直到softkeyboard的頂部。
項目和鍵盤的高度各不相同。我已嘗試getTop
,getHeight
,getMeasuredHeight
,但迄今沒有任何工作。
主要的一點是要找到點擊UI,並在鍵盤頂部之間的距離。
這是距離公式。你可以用這個來實現你的功能。您需要
假設下面是你的ListView,正在單擊
int[] loc = new int[2];
lvItem_button.getLocationOnScreen(loc);
放
以同樣的方式獲取它的座標。
int[] cords= new int[2];
keyboard_top_layout.getLocationOnScreen(cords);
double distance = Math.sqrt(Math.pow((cords[0] - loc[0]), 2) + Math.pow((cords[1] - loc[1]), 2));
distance -= heightOfItem; //subtract height because we want to align bottom of item to top of keyboard
distance = Math.ceil(distance);
lvItem.smoothScrollBy((int) -distance, 500); //-distance because X is increasing at bottom and decreasing at top. 500 is delay in scrolling. so it's smooth scroll
全部完成:)
謝謝,這工作:) – 2014-11-05 02:45:07