2017-08-25 1 views
0

Lors du débogage sur le port USB, je voulais simplement étendre WebView en mode plein écran. Malheureusement, l'écran blanc est apparu et rien après. Je ne sais vraiment pas quoi faire. J'ai fait CustomView et tout semblait bien. Voici mon code:L'écran devient blanc après l'extension en mode plein écran

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     filmkey = "<iframe width=\"96%\" height=\"96%\" src=\"https://www.youtube.com/embed/EtMOgsWEAmQ\" frameborder=\"0\" allowfullscreen></iframe>"; 

     screen=(WebView)findViewById(R.id.webView); 
     screen.getSettings().setJavaScriptEnabled(true); 
     String myvideokey = filmkey; 
     screen.loadData(myvideokey, "text/html", "utf-8"); 
     screen.setWebChromeClient(new WebChromeClient(){ 
      @Override 
      public void onShowCustomView(View view, CustomViewCallback callback) { 
       super.onShowCustomView(view, callback); 
      } 

      @Override 
      public void onHideCustomView() { 
       super.onHideCustomView(); 
      } 
     }); 

}

Répondre

0

essayez le code suivant. Dans ce en plein écran, j'ai créé un View qui deviendra plein écran.

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (savedInstanceState != null) { 
      screen.restoreState(savedInstanceState); 
     } 

     setContentView(R.layout.activity_support); 
     filmkey = "<iframe width=\"96%\" height=\"96%\" src=\"https://www.youtube.com/embed/EtMOgsWEAmQ\" frameborder=\"0\" allowfullscreen></iframe>"; 

     screen=(WebView)findViewById(R.id.webview); 
     screen.getSettings().setJavaScriptEnabled(true); 
     String myvideokey = filmkey; 
     screen.loadData(myvideokey, "text/html", "utf-8"); 
     CustomWebChromeClient custom = new CustomWebChromeClient(); 
     screen.setWebChromeClient(custom); 
    } 

et la coutume WebChromeClient est

class `CustomWebChromeClient` extends WebChromeClient{ 


@Override 
     public void onShowCustomView(View view, final CustomViewCallback callback) { 
      super.onShowCustomView(view, callback); 
      Dialog dialog = new Dialog(SupportActivity.this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
      view.setBackgroundColor(Color.TRANSPARENT); 
      dialog.setContentView(view); 
      dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
       @Override 
       public void onDismiss(DialogInterface dialog) { 
        callback.onCustomViewHidden(); 
       } 
      }); 
      dialog.show(); 
     } 

    @Override 
    public void onHideCustomView() { 
     super.onHideCustomView(); 
    } 
} 

et aussi assurez-vous d'utiliser toutes ces méthodes dans l'activité pour gérer les données dans webView.

@Override 
    protected void onResume() { 
     super.onResume(); 
     screen.onResume(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     screen.onPause(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     screen.stopLoading(); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     screen.destroy(); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     screen.saveState(outState); 
    } 

J'espère que cela aide.

+0

"Dialogue de dialogue = nouvelle boîte de dialogue (SupportActivity.this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);" Une erreur apparaît ici qui souligne "SupportActivity.this" ("WatchingActivity.this" dans ma situation) en disant "WatchingActivity n'est pas une classe englobante" –

+0

faire la classe dans le watchActivity seulement alors cette erreur ne viendra pas. Tout le code ci-dessus est dans un seul fichier WatchinActivity dans votre cas – Sahil

+0

Il semble toujours –