Меню не загружается в Webview - PullRequest
0 голосов
/ 29 октября 2018

Я делаю веб-просмотр, скажем, amazon.in, и мои коды добавлены ниже. Я новичок в разработке Android.

Проблемы: 1. когда я нажимаю на меню (верхний левый значок 3 бара), он отображает пустой экран. в чем может быть проблема?

  1. Как я могу сделать индикатор выполнения прозрачным и отображать текущую веб-страницу (веб-просмотр) в фоновом режиме индикатора выполнения (я использую Git Hub Spin Kit), пока не будет загружена следующая запрошенная страница, в отличие от отображения только прогресса бар с пустым фоном в данный момент?

  2. Если я добавлю заставку, когда приложение открывается в первый раз, как я могу отличить заставку и индикатор выполнения позже?

public class MainActivity extends AppCompatActivity {

private WebView mWebView;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWebView = (WebView) findViewById(R.id.activity_main_webview);

   // progress bar code from github spinkit
    progressBar = (ProgressBar) findViewById(R.id.spinKit);
    ChasingDots wave = new ChasingDots();
    progressBar.setIndeterminateDrawable(wave);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.loadUrl("https://www.amazon.in/");
    mWebView.setWebViewClient(new HelloWebViewClient());
}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
        ProgressBar progressBar =  findViewById(R.id.spinKit);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView webView, String url) {
if (Uri.parse(url).getHost().equals("www.amazon.in"))
            webView.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
        progressBar.setVisibility(view.GONE);

    }

}

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
public void onBackPressed() {
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            MainActivity.this);


    alertDialogBuilder.setTitle("Exit");
    alertDialogBuilder
            .setMessage("Do you really want to exit?")
            .setCancelable(false)
            .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {

                    MainActivity.this.finish();
                }
            })
            .setNegativeButton("No",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    dialog.cancel();
                }
            });
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();    }}

XML-файл

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" 

android:layout_width="match_parent"

android:layout_height="match_parent" 

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context=".MainActivity"> 
<com.github.ybq.android.spinkit.SpinKitView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/spinKit"
style="@style/SpinKitView.Large.ChasingDots" 
app:SpinKit_Color="@color/colorPrimary">    
</com.github.ybq.android.spinkit.SpinKitView> 
<WebView
    android:id="@+id/activity_main_webview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

...