java.lang.Object | ||||
↳ | android.view.View | |||
↳ | android.view.ViewGroup | |||
↳ | android.widget.AbsoluteLayout | |||
↳ | android.webkit.WebView |
A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more.
To enable the built-in zoom, set
WebSettings
.setBuiltInZoomControls(boolean)
(introduced in API version 3).
Note that, in order for your Activity to access the Internet and load web pages
in a WebView, you must add the INTERNET
permissions to your
Android Manifest file:
<uses-permission android:name="android.permission.INTERNET" />
This must be a child of the <manifest>
element.
See the Web View tutorial.
By default, a WebView provides no browser-like widgets, does not enable JavaScript and web page errors are ignored. If your goal is only to display some HTML as a part of your UI, this is probably fine; the user won't need to interact with the web page beyond reading it, and the web page won't need to interact with the user. If you actually want a full-blown web browser, then you probably want to invoke the Browser application with a URL Intent rather than show it with a WebView. For example:
Uri uri = Uri.parse("http://www.example.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
See Intent
for more information.
To provide a WebView in your own Activity, include a <WebView>
in your layout,
or set the entire Activity window as a WebView during onCreate()
:
WebView webview = new WebView(this); setContentView(webview);
Then load the desired web page:
// Simplest usage: note that an exception will NOT be thrown // if there is an error loading this page (see below). webview.loadUrl("http://slashdot.org/"); // OR, you can also load from an HTML string: String summary = "<html><body>You scored <b>192</b> points.</body></html>"; webview.loadData(summary, "text/html", "utf-8"); // ... although note that there are restrictions on what this HTML can do. // See the JavaDocs forloadData()
andloadDataWithBaseURL()
for more info.
A WebView has several customization points where you can add your own behavior. These are:
WebChromeClient
subclass.
This class is called when something that might impact a
browser UI happens, for instance, progress updates and
JavaScript alerts are sent here (see Debugging Tasks).
WebViewClient
subclass.
It will be called when things happen that impact the
rendering of the content, eg, errors or form submissions. You
can also intercept URL loading here (via shouldOverrideUrlLoading()
).WebSettings
, such as
enabling JavaScript with setJavaScriptEnabled()
. addJavascriptInterface(Object, String)
method.
This lets you bind Java objects into the WebView so they can be
controlled from the web pages JavaScript.Here's a more complicated example, showing error handling, settings, and progress notification:
// Let's display the progress in the activity title bar, like the // browser app does. getWindow().requestFeature(Window.FEATURE_PROGRESS); webview.getSettings().setJavaScriptEnabled(true); final Activity activity = this; webview.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { // Activities and WebViews measure progress with different scales. // The progress meter will automatically disappear when we reach 100% activity.setProgress(progress * 1000); } }); webview.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); } }); webview.loadUrl("http://slashdot.org/");
For obvious security reasons, your application has its own
cache, cookie store etc.—it does not share the Browser
application's data. Cookies are managed on a separate thread, so
operations like index building don't block the UI
thread. Follow the instructions in CookieSyncManager
if you want to use cookies in your application.
By default, requests by the HTML to open new windows are
ignored. This is true whether they be opened by JavaScript or by
the target attribute on a link. You can customize your
WebChromeClient
to provide your own behaviour for opening multiple windows,
and render them in whatever manner you want.
The standard behavior for an Activity is to be destroyed and
recreated when the device orientation or any other configuration changes. This will cause
the WebView to reload the current page. If you don't want that, you
can set your Activity to handle the orientation
and keyboardHidden
changes, and then just leave the WebView alone. It'll automatically
re-orient itself as appropriate. Read Handling Runtime Changes for
more information about how to handle configuration changes during runtime.
The screen density of a device is based on the screen resolution. A screen with low density has fewer available pixels per inch, where a screen with high density has more — sometimes significantly more — pixels per inch. The density of a screen is important because, other things being equal, a UI element (such as a button) whose height and width are defined in terms of screen pixels will appear larger on the lower density screen and smaller on the higher density screen. For simplicity, Android collapses all actual screen densities into three generalized densities: high, medium, and low.
By default, WebView scales a web page so that it is drawn at a size that matches the default appearance on a medium density screen. So, it applies 1.5x scaling on a high density screen (because its pixels are smaller) and 0.75x scaling on a low density screen (because its pixels are bigger). Starting with API Level 5 (Android 2.0), WebView supports DOM, CSS, and meta tag features to help you (as a web developer) target screens with different screen densities.
Here's a summary of the features you can use to handle different screen densities:
window.devicePixelRatio
DOM property. The value of this property specifies the
default scaling factor used for the current device. For example, if the value of window.devicePixelRatio
is "1.0", then the device is considered a medium density (mdpi) device
and default scaling is not applied to the web page; if the value is "1.5", then the device is
considered a high density device (hdpi) and the page content is scaled 1.5x; if the
value is "0.75", then the device is considered a low density device (ldpi) and the content is
scaled 0.75x. However, if you specify the "target-densitydpi"
meta property
(discussed below), then you can stop this default scaling behavior.-webkit-device-pixel-ratio
CSS media query. Use this to specify the screen
densities for which this style sheet is to be used. The corresponding value should be either
"0.75", "1", or "1.5", to indicate that the styles are for devices with low density, medium
density, or high density screens, respectively. For example:
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio:1.5)" href="hdpi.css" />
The hdpi.css
stylesheet is only used for devices with a screen pixel ration of 1.5,
which is the high density pixel ratio.
target-densitydpi
property for the viewport
meta tag. You can use
this to specify the target density for which the web page is designed, using the following
values:
device-dpi
- Use the device's native dpi as the target dpi. Default scaling never
occurs.high-dpi
- Use hdpi as the target dpi. Medium and low density screens scale down
as appropriate.medium-dpi
- Use mdpi as the target dpi. High density screens scale up and
low density screens scale down. This is also the default behavior.low-dpi
- Use ldpi as the target dpi. Medium and high density screens scale up
as appropriate.<value>
- Specify a dpi value to use as the target dpi (accepted
values are 70-400).Here's an example meta tag to specify the target density:
<meta name="viewport" content="target-densitydpi=device-dpi" />
If you want to modify your web page for different densities, by using the -webkit-device-pixel-ratio
CSS media query and/or the window.devicePixelRatio
DOM property, then you should set the target-densitydpi
meta
property to device-dpi
. This stops Android from performing scaling in your web page and
allows you to make the necessary adjustments for each density via CSS and JavaScript.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
WebView.HitTestResult | |||||||||||
WebView.PictureListener | Interface to listen for new pictures as they change. | ||||||||||
WebView.WebViewTransport | Transportation object for returning WebView across thread boundaries. |
[Expand]
Inherited XML Attributes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
android.view.ViewGroup
| |||||||||||
From class
android.view.View
|
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | SCHEME_GEO | URI scheme for map address | |||||||||
String | SCHEME_MAILTO | URI scheme for email address | |||||||||
String | SCHEME_TEL | URI scheme for telephone number |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
android.view.ViewGroup
| |||||||||||
From class
android.view.View
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Construct a new WebView with a Context object.
| |||||||||||
Construct a new WebView with layout parameters.
| |||||||||||
Construct a new WebView with layout parameters and a default style.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Use this function to bind an object to Javascript so that the
methods can be accessed from Javascript.
| |||||||||||
Return true if this WebView has a back history item.
| |||||||||||
Return true if the page can go back or forward the given
number of steps.
| |||||||||||
Return true if this WebView has a forward history item.
| |||||||||||
Return a new picture that captures the current display of the webview.
| |||||||||||
Clear the resource cache.
| |||||||||||
Make sure that clearing the form data removes the adapter from the
currently focused textfield if there is one.
| |||||||||||
Tell the WebView to clear its internal back/forward list.
| |||||||||||
Clear the SSL preferences table stored in response to proceeding with SSL
certificate errors.
| |||||||||||
Clear the view so that onDraw() will draw nothing but white background,
and onMeasure() will return 0 if MeasureSpec is not MeasureSpec.EXACTLY
| |||||||||||
Called by a parent to request that a child update its values for mScrollX
and mScrollY if necessary.
| |||||||||||
Return the WebBackForwardList for this WebView.
| |||||||||||
Destroy the internal state of the WebView.
| |||||||||||
If platform notifications are enabled, this should be called
from the Activity's onPause() or onStop().
| |||||||||||
Dispatch a key event to the next view on the focus path.
| |||||||||||
Query the document to see if it contains any image references.
| |||||||||||
Manually render this view (and all of its children) to the given Canvas.
| |||||||||||
Use this method to put the WebView into text selection mode.
| |||||||||||
Enables platform notifications of data state and proxy changes.
| |||||||||||
Return the first substring consisting of the address of a physical
location.
| |||||||||||
Call this to inform the view that memory is low so that it can
free any available memory.
| |||||||||||
Get the favicon for the current page.
| |||||||||||
Return a HitTestResult based on the current cursor node.
| |||||||||||
Retrieve the HTTP authentication username and password for a given
host & realm pair
| |||||||||||
Get the original url for the current page.
| |||||||||||
This method is deprecated.
This was used for Gears, which has been deprecated.
| |||||||||||
Get the progress for the current page.
| |||||||||||
Return the current scale of the WebView
| |||||||||||
Return the WebSettings object used to control the settings for this
WebView.
| |||||||||||
Get the title for the current page.
| |||||||||||
Get the url for the current page.
| |||||||||||
This method is deprecated.
The built-in zoom mechanism is preferred, see
setBuiltInZoomControls(boolean) .
| |||||||||||
Go back in the history of this WebView.
| |||||||||||
Go to the history item that is the number of steps away from
the current item.
| |||||||||||
Go forward in the history of this WebView.
| |||||||||||
Invoke the graphical zoom picker widget for this WebView.
| |||||||||||
Load the given data into the WebView.
| |||||||||||
Load the given data into the WebView, use the provided URL as the base
URL for the content.
| |||||||||||
Load the given url.
| |||||||||||
Load the given url with the extra headers.
| |||||||||||
This method is deprecated.
WebView no longer needs to implement
ViewGroup.OnHierarchyChangeListener. This method does nothing now.
| |||||||||||
This method is deprecated.
WebView no longer needs to implement
ViewGroup.OnHierarchyChangeListener. This method does nothing now.
| |||||||||||
Create a new InputConnection for an InputMethod to interact
with the view.
| |||||||||||
This method is deprecated.
WebView should not have implemented
ViewTreeObserver.OnGlobalFocusChangeListener. This method
does nothing now.
| |||||||||||
Default implementation of
KeyEvent.Callback.onKeyMultiple() : perform press of the view
when KEYCODE_DPAD_CENTER or KEYCODE_ENTER
is released, if the view is enabled and clickable. | |||||||||||
Default implementation of
KeyEvent.Callback.onKeyMultiple() : always returns false (doesn't handle
the event). | |||||||||||
Default implementation of
KeyEvent.Callback.onKeyMultiple() : perform clicking of the view
when KEYCODE_DPAD_CENTER or
KEYCODE_ENTER is released. | |||||||||||
Implement this method to handle touch screen motion events.
| |||||||||||
Implement this method to handle trackball motion events.
| |||||||||||
Called when the window containing this view gains or loses focus.
| |||||||||||
Return whether horizontal scrollbar has overlay style
| |||||||||||
Return whether vertical scrollbar has overlay style
| |||||||||||
Scroll the contents of the view down by half the page size
| |||||||||||
Scroll the contents of the view up by half the view size
| |||||||||||
Pause all layout, parsing, and javascript timers for all webviews.
| |||||||||||
Call this view's OnLongClickListener, if it is defined.
| |||||||||||
Load the url with postData using "POST" method into the WebView.
| |||||||||||
This method is deprecated.
This was used for Gears, which has been deprecated.
| |||||||||||
Reload the current url.
| |||||||||||
Called when a child of this group wants a particular rectangle to be
positioned onto the screen.
| |||||||||||
Call this to try to give focus to a specific view or to one of its descendants
and give it hints about the direction and a specific rectangle that the focus
is coming from.
Looks for a view to give focus to respecting the setting specified by
getDescendantFocusability() . | |||||||||||
Request the href of an anchor element due to getFocusNodePath returning
"href." If hrefMsg is null, this method returns immediately and does not
dispatch hrefMsg to its target.
| |||||||||||
Request the url of the image last touched by the user.
| |||||||||||
Restore the display data that was save in
savePicture(Bundle, File) . | |||||||||||
Restore the state of this WebView from the given map used in
onRestoreInstanceState(Bundle) . | |||||||||||
Resume all layout, parsing, and javascript timers for all webviews.
| |||||||||||
Save the username and password for a particular host in the WebView's
internal database.
| |||||||||||
Save the current display data to the Bundle given.
| |||||||||||
Save the state of this WebView used in
onSaveInstanceState(Bundle) . | |||||||||||
Set the background color.
| |||||||||||
Sets the SSL certificate for the main top-level page.
| |||||||||||
Register the interface to be used when content can not be handled by
the rendering engine, and should be downloaded instead.
| |||||||||||
Specify whether the horizontal scrollbar has overlay style.
| |||||||||||
Set the HTTP authentication credentials for a given host and realm.
| |||||||||||
Set the initial scale for the WebView.
| |||||||||||
Set the layout parameters associated with this view.
| |||||||||||
Inform WebView of the network state.
| |||||||||||
Set the over-scroll mode for this view.
| |||||||||||
Set the Picture listener.
| |||||||||||
Specify the style of the scrollbars. | |||||||||||
Specify whether the vertical scrollbar has overlay style.
| |||||||||||
Set the chrome handler.
| |||||||||||
Set the WebViewClient that will receive various notifications and
requests.
| |||||||||||
Stop the current load.
| |||||||||||
Perform zoom in in the webview
| |||||||||||
Perform zoom out in the webview
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Compute the horizontal offset of the horizontal scrollbar's thumb within the horizontal range. | |||||||||||
Compute the horizontal range that the horizontal scrollbar represents. | |||||||||||
Compute the vertical extent of the horizontal scrollbar's thumb within the vertical range. | |||||||||||
Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range. | |||||||||||
Compute the vertical range that the vertical scrollbar represents. | |||||||||||
Draw one child of this View Group.
| |||||||||||
Called before the object's memory is reclaimed by the VM.
| |||||||||||
This is called when the view is attached to a window.
| |||||||||||
This is called when the view is detached from a window.
| |||||||||||
Implement this to do your drawing.
| |||||||||||
Called by the view system when the focus state of this view changes.
| |||||||||||
Measure the view and its content to determine the measured width and the measured height. | |||||||||||
Called by
overScrollBy(int, int, int, int, int, int, int, int, boolean) to
respond to the results of an over-scroll operation. | |||||||||||
This is called in response to an internal scroll in this view (i.e., the
view scrolled its own contents).
| |||||||||||
This is called during layout when the size of this view has changed.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class android.widget.AbsoluteLayout
| |||||||||||
From class android.view.ViewGroup
| |||||||||||
From class android.view.View
| |||||||||||
From class java.lang.Object
| |||||||||||
From interface android.graphics.drawable.Drawable.Callback
| |||||||||||
From interface android.view.KeyEvent.Callback
| |||||||||||
From interface android.view.ViewGroup.OnHierarchyChangeListener
| |||||||||||
From interface android.view.ViewManager
| |||||||||||
From interface android.view.ViewParent
| |||||||||||
From interface android.view.ViewTreeObserver.OnGlobalFocusChangeListener
| |||||||||||
From interface android.view.accessibility.AccessibilityEventSource
|
URI scheme for map address
URI scheme for email address
URI scheme for telephone number
Construct a new WebView with a Context object.
context | A Context object used to access application assets. |
---|
Construct a new WebView with layout parameters.
context | A Context object used to access application assets. |
---|---|
attrs | An AttributeSet passed to our parent. |
Construct a new WebView with layout parameters and a default style.
context | A Context object used to access application assets. |
---|---|
attrs | An AttributeSet passed to our parent. |
defStyle | The default style resource ID. |
Use this function to bind an object to Javascript so that the methods can be accessed from Javascript.
IMPORTANT:
obj | The class instance to bind to Javascript |
---|---|
interfaceName | The name to used to expose the class in Javascript |
Return true if this WebView has a back history item.
Return true if the page can go back or forward the given number of steps.
steps | The negative or positive number of steps to move the history. |
---|
Return true if this WebView has a forward history item.
Return a new picture that captures the current display of the webview. This is a copy of the display, and will be unaffected if the webview later loads a different URL.
Clear the resource cache. Note that the cache is per-application, so this will clear the cache for all WebViews used.
includeDiskFiles | If false, only the RAM cache is cleared. |
---|
Make sure that clearing the form data removes the adapter from the currently focused textfield if there is one.
Tell the WebView to clear its internal back/forward list.
Clear the SSL preferences table stored in response to proceeding with SSL certificate errors.
Clear the view so that onDraw() will draw nothing but white background, and onMeasure() will return 0 if MeasureSpec is not MeasureSpec.EXACTLY
Called by a parent to request that a child update its values for mScrollX
and mScrollY if necessary. This will typically be done if the child is
animating a scroll using a Scroller
object.
Return the WebBackForwardList for this WebView. This contains the back/forward list for use in querying each item in the history stack. This is a copy of the private WebBackForwardList so it contains only a snapshot of the current state. Multiple calls to this method may return different objects. The object returned from this method will not be updated to reflect any new state.
Destroy the internal state of the WebView. This method should be called after the WebView has been removed from the view system. No other methods may be called on a WebView after destroy.
If platform notifications are enabled, this should be called from the Activity's onPause() or onStop().
Dispatch a key event to the next view on the focus path. This path runs from the top of the view tree down to the currently focused view. If this view has focus, it will dispatch to itself. Otherwise it will dispatch the next node down the focus path. This method also fires any key listeners.
event | The key event to be dispatched. |
---|
Query the document to see if it contains any image references. The message object will be dispatched with arg1 being set to 1 if images were found and 0 if the document does not reference any images.
response | The message that will be dispatched with the result. |
---|
Manually render this view (and all of its children) to the given Canvas.
The view must have already done a full layout before this function is
called. When implementing a view, do not override this method; instead,
you should implement onDraw(Canvas)
.
canvas | The Canvas to which the View is rendered. |
---|
Use this method to put the WebView into text selection mode. Do not rely on this functionality; it will be deprecated in the future.
Enables platform notifications of data state and proxy changes.
Return the first substring consisting of the address of a physical location. Currently, only addresses in the United States are detected, and consist of: - a house number - a street name - a street type (Road, Circle, etc), either spelled out or abbreviated - a city name - a state or territory, either spelled out or two-letter abbr. - an optional 5 digit or 9 digit zip code. All names must be correctly capitalized, and the zip code, if present, must be valid for the state. The street type must be a standard USPS spelling or abbreviation. The state or territory must also be spelled or abbreviated using USPS standards. The house number may not exceed five digits.
addr | The string to search for addresses. |
---|
Call this to inform the view that memory is low so that it can free any available memory.
Get the favicon for the current page. This is the favicon of the current page until WebViewClient.onReceivedIcon is called.
Return a HitTestResult based on the current cursor node. If a HTML::a tag
is found and the anchor has a non-javascript url, the HitTestResult type
is set to SRC_ANCHOR_TYPE and the url is set in the "extra" field. If the
anchor does not have a url or if it is a javascript url, the type will
be UNKNOWN_TYPE and the url has to be retrieved through
requestFocusNodeHref(Message)
asynchronously. If a HTML::img tag is
found, the HitTestResult type is set to IMAGE_TYPE and the url is set in
the "extra" field. A type of
SRC_IMAGE_ANCHOR_TYPE indicates an anchor with a url that has an image as
a child node. If a phone number is found, the HitTestResult type is set
to PHONE_TYPE and the phone number is set in the "extra" field of
HitTestResult. If a map address is found, the HitTestResult type is set
to GEO_TYPE and the address is set in the "extra" field of HitTestResult.
If an email address is found, the HitTestResult type is set to EMAIL_TYPE
and the email is set in the "extra" field of HitTestResult. Otherwise,
HitTestResult type is set to UNKNOWN_TYPE.
Retrieve the HTTP authentication username and password for a given host & realm pair
host | The host for which the credentials apply. |
---|---|
realm | The realm for which the credentials apply. |
Get the original url for the current page. This is not always the same as the url passed to WebViewClient.onPageStarted because although the load for that url has begun, the current page may not have changed. Also, there may have been redirects resulting in a different url to that originally requested.
This method is deprecated.
This was used for Gears, which has been deprecated.
Return the list of currently loaded plugins.
Get the progress for the current page.
Return the current scale of the WebView
Return the WebSettings object used to control the settings for this WebView.
Get the title for the current page. This is the title of the current page until WebViewClient.onReceivedTitle is called.
Get the url for the current page. This is not always the same as the url passed to WebViewClient.onPageStarted because although the load for that url has begun, the current page may not have changed.
This method is deprecated.
The built-in zoom mechanism is preferred, see
setBuiltInZoomControls(boolean)
.
Returns a view containing zoom controls i.e. +/- buttons. The caller is in charge of installing this view to the view hierarchy. This view will become visible when the user starts scrolling via touch and fade away if the user does not interact with it.
API version 3 introduces a built-in zoom mechanism that is shown automatically by the MapView. This is the preferred approach for showing the zoom UI.Go to the history item that is the number of steps away from the current item. Steps is negative if backward and positive if forward.
steps | The number of steps to take back or forward in the back forward list. |
---|
Invoke the graphical zoom picker widget for this WebView. This will result in the zoom widget appearing on the screen to control the zoom level of this WebView.
Load the given data into the WebView. This will load the data into WebView using the data: scheme. Content loaded through this mechanism does not have the ability to load content from the network.
data | A String of data in the given encoding. The date must be URI-escaped -- '#', '%', '\', '?' should be replaced by %23, %25, %27, %3f respectively. |
---|---|
mimeType | The MIMEType of the data. i.e. text/html, image/jpeg |
encoding | The encoding of the data. i.e. utf-8, base64 |
Load the given data into the WebView, use the provided URL as the base URL for the content. The base URL is the URL that represents the page that is loaded through this interface. As such, it is used to resolve any relative URLs. The historyUrl is used for the history entry.
Note for post 1.0. Due to the change in the WebKit, the access to asset files through "file:///android_asset/" for the sub resources is more restricted. If you provide null or empty string as baseUrl, you won't be able to access asset files. If the baseUrl is anything other than http(s)/ftp(s)/about/javascript as scheme, you can access asset files for sub resources.
baseUrl | Url to resolve relative paths with, if null defaults to "about:blank" |
---|---|
data | A String of data in the given encoding. |
mimeType | The MIMEType of the data. i.e. text/html. If null, defaults to "text/html" |
encoding | The encoding of the data. i.e. utf-8, us-ascii |
historyUrl | URL to use as the history entry. Can be null. |
Load the given url.
url | The url of the resource to load. |
---|
Load the given url with the extra headers.
url | The url of the resource to load. |
---|---|
extraHeaders | The extra headers sent with this url. This should not include the common headers like "user-agent". If it does, it will be replaced by the intrinsic value of the WebView. |
This method is deprecated.
WebView no longer needs to implement
ViewGroup.OnHierarchyChangeListener. This method does nothing now.
Called when a new child is added to a parent view.
parent | the view in which a child was added |
---|---|
child | the new child view added in the hierarchy |
This method is deprecated.
WebView no longer needs to implement
ViewGroup.OnHierarchyChangeListener. This method does nothing now.
Called when a child is removed from a parent view.
p | the view from which the child was removed |
---|---|
child | the child removed from the hierarchy |
Create a new InputConnection for an InputMethod to interact with the view. The default implementation returns null, since it doesn't support input methods. You can override this to implement such support. This is only needed for views that take focus and text input.
When implementing this, you probably also want to implement
onCheckIsTextEditor()
to indicate you will return a
non-null InputConnection.
outAttrs | Fill in with attribute information about the connection. |
---|
This method is deprecated.
WebView should not have implemented
ViewTreeObserver.OnGlobalFocusChangeListener. This method
does nothing now.
Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
oldFocus | The previously focused view, if any. |
---|---|
newFocus | The newly focused View, if any. |
Default implementation of KeyEvent.Callback.onKeyMultiple()
: perform press of the view
when KEYCODE_DPAD_CENTER
or KEYCODE_ENTER
is released, if the view is enabled and clickable.
keyCode | A key code that represents the button pressed, from
KeyEvent . |
---|---|
event | The KeyEvent object that defines the button action. |
Default implementation of KeyEvent.Callback.onKeyMultiple()
: always returns false (doesn't handle
the event).
keyCode | A key code that represents the button pressed, from
KeyEvent . |
---|---|
repeatCount | The number of times the action was made. |
event | The KeyEvent object that defines the button action. |
Default implementation of KeyEvent.Callback.onKeyMultiple()
: perform clicking of the view
when KEYCODE_DPAD_CENTER
or
KEYCODE_ENTER
is released.
keyCode | A key code that represents the button pressed, from
KeyEvent . |
---|---|
event | The KeyEvent object that defines the button action. |
Implement this method to handle touch screen motion events.
ev | The motion event. |
---|
Implement this method to handle trackball motion events. The
relative movement of the trackball since the last event
can be retrieve with MotionEvent.getX()
and
MotionEvent.getY()
. These are normalized so
that a movement of 1 corresponds to the user pressing one DPAD key (so
they will often be fractional values, representing the more fine-grained
movement information available from a trackball).
ev | The motion event. |
---|
Called when the window containing this view gains or loses focus. Note that this is separate from view focus: to receive key events, both your view and its window must have focus. If a window is displayed on top of yours that takes input focus, then your own window will lose focus but the view focus will remain unchanged.
hasWindowFocus | True if the window containing this view now has focus, false otherwise. |
---|
Return whether horizontal scrollbar has overlay style
Return whether vertical scrollbar has overlay style
Scroll the contents of the view down by half the page size
bottom | true to jump to bottom of page |
---|
Scroll the contents of the view up by half the view size
top | true to jump to the top of the page |
---|
Pause all layout, parsing, and javascript timers for all webviews. This is a global requests, not restricted to just this webview. This can be useful if the application has been paused.
Call this view's OnLongClickListener, if it is defined. Invokes the context menu if the OnLongClickListener did not consume the event.
Load the url with postData using "POST" method into the WebView. If url
is not a network url, it will be loaded with {link
loadUrl(String)
instead.
url | The url of the resource to load. |
---|---|
postData | The data will be passed to "POST" request. |
This method is deprecated.
This was used for Gears, which has been deprecated.
Called when a child of this group wants a particular rectangle to be
positioned onto the screen. ViewGroup
s overriding this can trust
that:
ViewGroup
s overriding this should uphold the contract:
child | The direct child making the request. |
---|---|
rect | The rectangle in the child's coordinates the child wishes to be on the screen. |
immediate | True to forbid animated or delayed scrolling, false otherwise |
Call this to try to give focus to a specific view or to one of its descendants
and give it hints about the direction and a specific rectangle that the focus
is coming from. The rectangle can help give larger views a finer grained hint
about where focus is coming from, and therefore, where to show selection, or
forward focus change internally.
A view will not actually take focus if it is not focusable (isFocusable()
returns false),
or if it is focusable and it is not focusable in touch mode (isFocusableInTouchMode()
)
while the device is in touch mode.
A View will not take focus if it is not visible.
A View will not take focus if one of its parents has getDescendantFocusability()
equal to FOCUS_BLOCK_DESCENDANTS
.
See also focusSearch(int)
, which is what you call to say that you
have focus, and you want your parent to look for the next one.
You may wish to override this method if your custom View
has an internal
View
that it wishes to forward the request to.
Looks for a view to give focus to respecting the setting specified by
getDescendantFocusability()
.
Uses onRequestFocusInDescendants(int, android.graphics.Rect)
to
find focus within the children of this group when appropriate.
direction | One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT |
---|---|
previouslyFocusedRect | The rectangle (in this View's coordinate system) to give a finer grained hint about where focus is coming from. May be null if there is no hint. |
Request the href of an anchor element due to getFocusNodePath returning "href." If hrefMsg is null, this method returns immediately and does not dispatch hrefMsg to its target.
hrefMsg | This message will be dispatched with the result of the request as the data member with "url" as key. The result can be null. |
---|
Request the url of the image last touched by the user. msg will be sent to its target with a String representing the url as its object.
msg | This message will be dispatched with the result of the request as the data member with "url" as key. The result can be null. |
---|
Restore the display data that was save in savePicture(Bundle, File)
. Used in
conjunction with restoreState(Bundle)
.
b | A Bundle containing the saved display data. |
---|---|
src | The file where the picture data was stored. |
Restore the state of this WebView from the given map used in
onRestoreInstanceState(Bundle)
. This method should
be called to restore the state of the WebView before using the object. If
it is called after the WebView has had a chance to build state (load
pages, create a back/forward list, etc.) there may be undesirable
side-effects. Please note that this method no longer restores the
display data for this WebView. See savePicture(Bundle, File)
and restorePicture(Bundle, File)
for saving and restoring the display data.
inState | The incoming Bundle of state. |
---|
Resume all layout, parsing, and javascript timers for all webviews. This will resume dispatching all timers.
Save the username and password for a particular host in the WebView's internal database.
host | The host that required the credentials. |
---|---|
username | The username for the given host. |
password | The password for the given host. |
Save the current display data to the Bundle given. Used in conjunction
with saveState(Bundle)
.
b | A Bundle to store the display data. |
---|---|
dest | The file to store the serialized picture data. Will be overwritten with this WebView's picture data. |
Save the state of this WebView used in
onSaveInstanceState(Bundle)
. Please note that this
method no longer stores the display data for this WebView. The previous
behavior could potentially leak files if restoreState(Bundle)
was never
called. See savePicture(Bundle, File)
and restorePicture(Bundle, File)
for saving
and restoring the display data.
outState | The Bundle to store the WebView state. |
---|
Set the background color. It's white by default. Pass zero to make the view transparent.
color | the ARGB color described by Color.java |
---|
Sets the SSL certificate for the main top-level page.
Register the interface to be used when content can not be handled by the rendering engine, and should be downloaded instead. This will replace the current handler.
listener | An implementation of DownloadListener. |
---|
Specify whether the horizontal scrollbar has overlay style.
overlay | TRUE if horizontal scrollbar should have overlay style. |
---|
Set the HTTP authentication credentials for a given host and realm.
host | The host for the credentials. |
---|---|
realm | The realm for the credentials. |
username | The username for the password. If it is null, it means password can't be saved. |
password | The password |
Set the initial scale for the WebView. 0 means default. If
getUseWideViewPort()
is true, it zooms out all the
way. Otherwise it starts with 100%. If initial scale is greater than 0,
WebView starts will this value as initial scale.
scaleInPercent | The initial scale in percent. |
---|
Set the layout parameters associated with this view. These supply parameters to the parent of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.
params | the layout parameters for this view |
---|
Inform WebView of the network state. This is used to set the javascript property window.navigator.isOnline and generates the online/offline event as specified in HTML5, sec. 5.7.7
networkUp | boolean indicating if network is available |
---|
Set the over-scroll mode for this view. Valid over-scroll modes are
OVER_SCROLL_ALWAYS
(default), OVER_SCROLL_IF_CONTENT_SCROLLS
(allow over-scrolling only if the view content is larger than the container),
or OVER_SCROLL_NEVER
.
Setting the over-scroll mode of a view will have an effect only if the
view is capable of scrolling.
mode | The new over-scroll mode for this view. |
---|
Set the Picture listener. This is an interface used to receive notifications of a new Picture.
listener | An implementation of WebView.PictureListener. |
---|
Specify the style of the scrollbars. The scrollbars can be overlaid or inset. When inset, they add to the padding of the view. And the scrollbars can be drawn inside the padding area or on the edge of the view. For example, if a view has a background drawable and you want to draw the scrollbars inside the padding specified by the drawable, you can use SCROLLBARS_INSIDE_OVERLAY or SCROLLBARS_INSIDE_INSET. If you want them to appear at the edge of the view, ignoring the padding, then you can use SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET.
style | the style of the scrollbars. Should be one of SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_INSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET. |
---|
Specify whether the vertical scrollbar has overlay style.
overlay | TRUE if vertical scrollbar should have overlay style. |
---|
Set the chrome handler. This is an implementation of WebChromeClient for use in handling Javascript dialogs, favicons, titles, and the progress. This will replace the current handler.
client | An implementation of WebChromeClient. |
---|
Set the WebViewClient that will receive various notifications and requests. This will replace the current handler.
client | An implementation of WebViewClient. |
---|
Perform zoom in in the webview
Perform zoom out in the webview
Compute the horizontal offset of the horizontal scrollbar's thumb within the horizontal range. This value is used to compute the position of the thumb within the scrollbar's track.
The range is expressed in arbitrary units that must be the same as the
units used by computeHorizontalScrollRange()
and
computeHorizontalScrollExtent()
.
The default offset is the scroll offset of this view.
Compute the horizontal range that the horizontal scrollbar represents.
The range is expressed in arbitrary units that must be the same as the
units used by computeHorizontalScrollExtent()
and
computeHorizontalScrollOffset()
.
The default range is the drawing width of this view.
Compute the vertical extent of the horizontal scrollbar's thumb within the vertical range. This value is used to compute the length of the thumb within the scrollbar's track.
The range is expressed in arbitrary units that must be the same as the
units used by computeVerticalScrollRange()
and
computeVerticalScrollOffset()
.
The default extent is the drawing height of this view.
Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range. This value is used to compute the position of the thumb within the scrollbar's track.
The range is expressed in arbitrary units that must be the same as the
units used by computeVerticalScrollRange()
and
computeVerticalScrollExtent()
.
The default offset is the scroll offset of this view.
Compute the vertical range that the vertical scrollbar represents.
The range is expressed in arbitrary units that must be the same as the
units used by computeVerticalScrollExtent()
and
computeVerticalScrollOffset()
.
The default range is the drawing height of this view.
Draw one child of this View Group. This method is responsible for getting the canvas in the right state. This includes clipping, translating so that the child's scrolled origin is at 0, 0, and applying any animation transformations.
canvas | The canvas on which to draw the child |
---|---|
child | Who to draw |
drawingTime | The time at which draw is occuring |
Called before the object's memory is reclaimed by the VM. This can only happen once the garbage collector has detected that the object is no longer reachable by any thread of the running application.
The method can be used to free system resources or perform other cleanup
before the object is garbage collected. The default implementation of the
method is empty, which is also expected by the VM, but subclasses can
override finalize()
as required. Uncaught exceptions which are
thrown during the execution of this method cause it to terminate
immediately but are otherwise ignored.
Note that the VM does guarantee that finalize()
is called at most
once for any object, but it doesn't guarantee when (if at all) finalize()
will be called. For example, object B's finalize()
can delay the execution of object A's finalize()
method and
therefore it can delay the reclamation of A's memory. To be safe, use a
ReferenceQueue
, because it provides more control
over the way the VM deals with references during garbage collection.
Throwable |
---|
This is called when the view is attached to a window. At this point it
has a Surface and will start drawing. Note that this function is
guaranteed to be called before onDraw(Canvas)
, however it may be called
any time before the first onDraw -- including before or after
onMeasure(int, int)
.
This is called when the view is detached from a window. At this point it no longer has a surface for drawing.
Implement this to do your drawing.
canvas | the canvas on which the background will be drawn |
---|
Called by the view system when the focus state of this view changes. When the focus change event is caused by directional navigation, direction and previouslyFocusedRect provide insight into where the focus is coming from. When overriding, be sure to call up through to the super class so that the standard focus handling will occur.
focused | True if the View has focus; false otherwise. |
---|---|
direction | The direction focus has moved when requestFocus()
is called to give this view focus. Values are
FOCUS_UP , FOCUS_DOWN , FOCUS_LEFT or
FOCUS_RIGHT . It may not always apply, in which
case use the default. |
previouslyFocusedRect | The rectangle, in this view's coordinate
system, of the previously focused view. If applicable, this will be
passed in as finer grained information about where the focus is coming
from (in addition to direction). Will be null otherwise.
|
Measure the view and its content to determine the measured width and the
measured height. This method is invoked by measure(int, int)
and
should be overriden by subclasses to provide accurate and efficient
measurement of their contents.
CONTRACT: When overriding this method, you
must call setMeasuredDimension(int, int)
to store the
measured width and height of this view. Failure to do so will trigger an
IllegalStateException
, thrown by
measure(int, int)
. Calling the superclass'
onMeasure(int, int)
is a valid use.
The base class implementation of measure defaults to the background size,
unless a larger size is allowed by the MeasureSpec. Subclasses should
override onMeasure(int, int)
to provide better measurements of
their content.
If this method is overridden, it is the subclass's responsibility to make
sure the measured height and width are at least the view's minimum height
and width (getSuggestedMinimumHeight()
and
getSuggestedMinimumWidth()
).
widthMeasureSpec | horizontal space requirements as imposed by the parent.
The requirements are encoded with
View.MeasureSpec . |
---|---|
heightMeasureSpec | vertical space requirements as imposed by the parent.
The requirements are encoded with
View.MeasureSpec . |
Called by overScrollBy(int, int, int, int, int, int, int, int, boolean)
to
respond to the results of an over-scroll operation.
scrollX | New X scroll value in pixels |
---|---|
scrollY | New Y scroll value in pixels |
clampedX | True if scrollX was clamped to an over-scroll boundary |
clampedY | True if scrollY was clamped to an over-scroll boundary |
This is called in response to an internal scroll in this view (i.e., the
view scrolled its own contents). This is typically as a result of
scrollBy(int, int)
or scrollTo(int, int)
having been
called.
l | Current horizontal scroll origin. |
---|---|
t | Current vertical scroll origin. |
oldl | Previous horizontal scroll origin. |
oldt | Previous vertical scroll origin. |
This is called during layout when the size of this view has changed. If you were just added to the view hierarchy, you're called with the old values of 0.
w | Current width of this view. |
---|---|
h | Current height of this view. |
ow | Old width of this view. |
oh | Old height of this view. |