Боковая панель WebView не расширяется - PullRequest
0 голосов
/ 07 января 2019

Я использую WebView для загрузки веб-страницы для приложения. Я все правильно настроил, но проблема у меня в том, что боковая панель для сайта в webView не появляется. Значок отображается довольно хорошо, а также реагирует на щелчки, но он не выходит и не расширяется. Я попытался загрузить сайт в мобильный браузер Chrome, и он работал хорошо. Что может быть не так с моим кодом? Пожалуйста, кто-нибудь, помогите мне.

MainActivity.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"
    tools:context=".MainActivity">
    <android.support.v4.widget.SwipeRefreshLayout
       android:layout_alignParentTop="true"
        android:id="@+id/pull_to_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <WebView
            android:id="@+id/my_web_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </WebView>
    </android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private WebView myWebView;
    private ProgressDialog mProgressDialog;
    private SwipeRefreshLayout swipeRefreshLayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myWebView = findViewById(R.id.my_web_view);
        loadWebView();
        //implementing pull to refresh
        swipeRefreshLayout = findViewById(R.id.pull_to_refresh);
        swipeRefreshLayout.setRefreshing(true);
        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                loadWebView();
            }
        });
    }

    private void loadWebView() {
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                mProgressDialog = new ProgressDialog(MainActivity.this);
                mProgressDialog.setMessage("Loading");
                if (!swipeRefreshLayout.isRefreshing()){
                    mProgressDialog.show();
                }
                mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel(DialogInterface dialog) {
                        showToast();
                    }
                });
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if (mProgressDialog != null) {
                    mProgressDialog.dismiss();
                }
                swipeRefreshLayout.setRefreshing(false);
            }
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                super.onReceivedError(view, request, error);
                showToast();
            }
            @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                view.loadUrl(request.getUrl().toString());
                return super.shouldOverrideUrlLoading(view, request);
            }
        });
        myWebView.loadUrl("https://app.gerocare.org/doctor");
    }

    private void showToast() {
        Toast.makeText(this, "connection error", Toast.LENGTH_SHORT).show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...