下面列出了android.webkit.WebView#getHeight ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 规避 contentHeight 异步变化
* @return
*/
private boolean canWebViewScrollUp(WebView webView) {
if (mWebViewContentHeight == 0) {
mWebViewContentHeight = (int) (webView.getContentHeight() * webView.getScale());
}
final int offset = webView.getScrollY();
final int range = mWebViewContentHeight - webView.getHeight();
if (range == 0) {
return false;
}
return offset > 2;
}
/**
* 规避 contentHeight 异步变化
* @return
*/
private boolean canWebViewScrollDown(WebView webView) {
if (mWebViewContentHeight == 0) {
mWebViewContentHeight = (int) (webView.getContentHeight() * webView.getScale());
}
final int offset = webView.getScrollY();
final int range = mWebViewContentHeight - webView.getHeight();
if (range == 0) {
return false;
}
return offset < range - 2;
}
/**
* Returns true if the view is sufficiently shown
*
* @param view the view to check
* @return true if the view is sufficiently shown
*/
public final boolean isWebElementSufficientlyShown(WebElement webElement){
final WebView webView = viewFetcher.getFreshestView(viewFetcher.getCurrentViews(WebView.class, true));
final int[] xyWebView = new int[2];
if(webView != null && webElement != null){
webView.getLocationOnScreen(xyWebView);
if(xyWebView[1] + webView.getHeight() > webElement.getLocationY())
return true;
}
return false;
}
private float convertWebViewToScreenY(float y) {
if (ttsHost == null) {
Log.w(TAG, "convertWebViewToScreenY() ttsHost is null");
return 0;
}
WebView webView = ttsHost.getWebView();
return y * webView.getHeight() / webView.getContentHeight();
}
public static boolean isWebViewToBottom(WebView webview, int mTouchSlop) {
return webview != null && ((webview.getContentHeight() * webview.getScale() - (webview.getHeight() + webview.getScrollY())) <= 2 * mTouchSlop);
}
public static boolean isWebViewToBottom(WebView webview, int mTouchSlop) {
return webview != null && ((webview.getContentHeight() * webview.getScale() - (webview.getHeight() + webview.getScrollY())) <= 2 * mTouchSlop);
}