Я делаю веб-просмотр, скажем, amazon.in, и мои коды добавлены ниже. Я новичок в разработке Android.
Проблемы:
1. когда я нажимаю на меню (верхний левый значок 3 бара), он отображает пустой экран. в чем может быть проблема?
Как я могу сделать индикатор выполнения прозрачным и отображать текущую веб-страницу (веб-просмотр) в фоновом режиме индикатора выполнения (я использую Git Hub Spin Kit), пока не будет загружена следующая запрошенная страница, в отличие от отображения только прогресса бар с пустым фоном в данный момент?
Если я добавлю заставку, когда приложение открывается в первый раз, как я могу отличить заставку и индикатор выполнения позже?
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"/>