title: textureview onSurfaceTextureAvailable never called inside relativelayout inside fragment
body: <p>onSurfaceTextureAvailable in VideoView is never called...<br>
  I have this view that is holding the textureview.</p>
  
  <pre><code>public class MyMediaPlayer extends RelativeLayout{
  
  Context mContext;
  VideoView player;//this is a custom textureview that streams video
  
  public MyMediaPlayer(Context context) {
      super(context);
      mContext = context; 
      init();
  }
  public MyMediaPlayer(Context context, AttributeSet attrs) {
      super(context, attrs);
      mContext = context; 
      init();
  }
  public MyMediaPlayer(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
      mContext = context; 
      init();
  }
  private void init() {
      setBackgroundColor(Color.BLACK);    
      player = new VideoView(mContext);
      LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
      addView(player,lp);
  }
  public void setURL(String url){
      player.setVideoPath(url);
  }
  public void start(){
      player.start();
  }
  
  }
  </code></pre>
  
  <p>VideoView is set up like this:</p>
  
  <pre><code>public class VideoView extends TextureView {
  
  public VideoView(final Context context) {
      super(context);
      mContext = context;
      initVideoView();
  }
  
  public VideoView(final Context context, final AttributeSet attrs) {
      super(context, attrs);
      mContext = context;
      initVideoView();
  }
  
  public VideoView(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
      mContext = context;
      initVideoView();
  }
  
  public void initVideoView() {
      Log.d(LOG_TAG, "Initializing video view.");
      videoHeight = 0;
      videoWidth = 0;
      setFocusable(false);
      setSurfaceTextureListener(surfaceTextureListener);
  }
  SurfaceTextureListener surfaceTextureListener = new SurfaceTextureListener() {
      @Override
      public void onSurfaceTextureAvailable(final SurfaceTexture surface, final int width, final int height) {
          Log.d(LOG_TAG, "Surface texture now avaialble.");
          surfaceTexture = surface;
          openVideo();
      }
  
      @Override
      public void onSurfaceTextureSizeChanged(final SurfaceTexture surface, final int width, final int height) {
          Log.d(LOG_TAG, "Resized surface texture: " + width + '/' + height);
          surfaceWidth = width;
          surfaceHeight = height;
          boolean isValidState =  (targetState == STATE_PLAYING);
          boolean hasValidSize = (videoWidth == width &amp;&amp; videoHeight == height);
          if (mediaPlayer != null &amp;&amp; isValidState &amp;&amp; hasValidSize) {
              start();
          }
      }
  
      @Override
      public boolean onSurfaceTextureDestroyed(final SurfaceTexture surface) {
          Log.i(LOG_TAG, "Destroyed surface number " + number);
          return false;
      }
  
      @Override
      public void onSurfaceTextureUpdated(final SurfaceTexture surface) {
  
      }
  };
  }
  </code></pre>
  
  <p>MyMediaPlayer is setup in a xml of a fragment.<br>
  If i place the VideoView inside the fragment then everything works fine.<br>
  But if it is in mymediaplayer inside the fragment onSurfaceTextureAvailable is never called.</p>