XMLでWebViewを定義しています。
<WebView
android:id="@+id/streetview_webview"
android:layout_width="match_parent"
android:layout_height="164dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/header" />
ここで、コード内でこのWebViewの高さを取得して、CustomViewPagerのスクロールからWebビューのスクロールを除外したいと思います。
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (childId > 0) {
View webv = findViewById(R.id.webView1);
if (webv != null) {
int x = webv.getLeft();
int x2 = x + webv.getLayoutParams().width;
int y = webv.getTop();
int y2 = y + webv.getMeasuredHeight();
int targetx = (int) event.getX();
int targety = (int) event.getY();
if (targetx > x && targetx < x2 && targety > y && targety < y2) {
return false;
}
}
}
return super.onInterceptTouchEvent(event);
}
私が試してみました
webv.getHitRect
ただし、これは親の高さ(画面全体)を取得します
webv.getLayoutParams().width; // <- working
webv.getLayoutParams().height; // -1
と
webv.getHeight
しかし、それらのどれも私に164dpの高さを与えませんでした。
編集:ありがとうみんなAkosCzは正しいです。