SurfaceControlViewHost
  public
  
  
  
  class
  SurfaceControlViewHost
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.view.SurfaceControlViewHost | 
Utility class for adding a View hierarchy to a SurfaceControl. The View hierarchy
 will render in to a root SurfaceControl, and receive input based on the SurfaceControl's
 placement on-screen. The primary usage of this class is to embed a View hierarchy from
 one process in to another. After the SurfaceControlViewHost has been set up in the embedded
 content provider, we can send the SurfaceControlViewHost.SurfacePackage
 to the host process. The host process can then attach the hierarchy to a SurfaceView within
 its own by calling
 SurfaceView.setChildSurfacePackage.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | SurfaceControlViewHost.SurfacePackagePackage encapsulating a Surface hierarchy which contains interactive view elements. | 
| Public constructors | |
|---|---|
| 
      SurfaceControlViewHost(Context context, Display display, IBinder hostToken)
      Construct a new SurfaceControlViewHost. | |
| 
      SurfaceControlViewHost(Context context, Display display, InputTransferToken hostInputTransferToken)
      Construct a new SurfaceControlViewHost. | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        SurfaceControlViewHost.SurfacePackage | 
      getSurfacePackage()
      Return a SurfacePackage for the root SurfaceControl of the embedded hierarchy. | 
| 
        
        
        
        
        
        View | 
      getView()
       | 
| 
        
        
        
        
        
        void | 
      relayout(int width, int height)
      Modify the size of the root view. | 
| 
        
        
        
        
        
        void | 
      release()
      Trigger the tear down of the embedded view hierarchy and release the SurfaceControl. | 
| 
        
        
        
        
        
        void | 
      setView(View view, int width, int height)
      Set the root view of the SurfaceControlViewHost. | 
| 
        
        
        
        
        
        boolean | 
      transferTouchGestureToHost()
      
      This method was deprecated
      in API level 35.
    Use  | 
| Inherited methods | |
|---|---|
Public constructors
SurfaceControlViewHost
public SurfaceControlViewHost (Context context, Display display, IBinder hostToken)
Construct a new SurfaceControlViewHost. The root Surface will be
 allocated internally and is accessible via getSurfacePackage().
 The  parameter, primarily used for ANR reporting,
 must be obtained from whomever will be hosting the embedded hierarchy.
 It's accessible from SurfaceView.getHostToken.
| Parameters | |
|---|---|
| context | Context: The Context object for your activity or application.
 This value cannot benull. | 
| display | Display: The Display the hierarchy will be placed on.
 This value cannot benull. | 
SurfaceControlViewHost
public SurfaceControlViewHost (Context context, Display display, InputTransferToken hostInputTransferToken)
Construct a new SurfaceControlViewHost. The root Surface will be allocated internally and is accessible via getSurfacePackage().
 The hostInputTransferToken parameter allows the host and embedded to be associated with
 each other to allow transferring touch gesture and focus. This is also used for ANR
 reporting. It's accessible from AttachedSurfaceControl.getInputTransferToken().
| Parameters | |
|---|---|
| context | Context: The Context object for your activity or application.
 This value cannot benull. | 
| display | Display: The Display the hierarchy will be placed on.
 This value cannot benull. | 
| hostInputTransferToken | InputTransferToken: The host input transfer token, as discussed above.
 This value may benull. | 
Public methods
getSurfacePackage
public SurfaceControlViewHost.SurfacePackage getSurfacePackage ()
Return a SurfacePackage for the root SurfaceControl of the embedded hierarchy.
 Rather than be directly reparented using SurfaceControl.Transaction this
 SurfacePackage should be passed to SurfaceView.setChildSurfacePackage
 which will not only reparent the Surface, but ensure the accessibility hierarchies
 are linked.
| Returns | |
|---|---|
| SurfaceControlViewHost.SurfacePackage | This value may be null. | 
getView
public View getView ()
| Returns | |
|---|---|
| View | The view passed to setView, or null if none has been passed. | 
relayout
public void relayout (int width, 
                int height)Modify the size of the root view.
| Parameters | |
|---|---|
| width | int: Width in pixels | 
| height | int: Height in pixels | 
release
public void release ()
Trigger the tear down of the embedded view hierarchy and release the SurfaceControl. This will result in onDispatchedFromWindow being dispatched to the embedded view hierarchy and render the object unusable.
setView
public void setView (View view, int width, int height)
Set the root view of the SurfaceControlViewHost. This view will render in to the SurfaceControl, and receive input based on the SurfaceControls positioning on screen. It will be laid as if it were in a window of the passed in width and height.
| Parameters | |
|---|---|
| view | View: The View to add
 This value cannot benull. | 
| width | int: The width to layout the View within, in pixels. | 
| height | int: The height to layout the View within, in pixels. | 
transferTouchGestureToHost
public boolean transferTouchGestureToHost ()
      This method was deprecated
      in API level 35.
    Use WindowManager.transferTouchGesture(InputTransferToken,
 InputTransferToken) instead.
  
Transfer the currently in progress touch gesture to the parent (if any) of this
 SurfaceControlViewHost. This requires that the SurfaceControlViewHost was created with an
 associated host InputTransferToken.
| Returns | |
|---|---|
| boolean | Whether the touch stream was transferred. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
