Как добавить горизонтальный индикатор выполнения поверх веб-просмотра? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь установить индикатор выполнения в верхней части моего веб-просмотра во время загрузки страницы.Прямо как хром.Как я могу это сделать?у меня есть вид обновления салфетки в контейнере.Я просмотрел множество ответов здесь и попытался реализовать их, но безуспешно.

Я просто хочу реализовать простой индикатор выполнения (например, chrome) каждый раз, когда загружается веб-просмотр.

public class MainActivity extends Activity {
 WebView browser;

 SwipeRefreshLayout mySwipeRefreshLayout;
private ViewTreeObserver.OnScrollChangedListener mOnScrollChangedListener;


@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // find the WebView by name in the main.xml of step 2
    browser=(WebView)findViewById(R.id.webview);
    // Enable javascript
    browser.getSettings().setJavaScriptEnabled(true);
    // Set WebView client
    browser.setWebChromeClient(new WebChromeClient());

    browser.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // open in Webview
            if (url.contains("example.com") ){
                // Can be clever about it like so where myshost is defined in your strings file
                // if (Uri.parse(url).getHost().equals(getString(R.string.myhost)))
                return false;
            }
            // open rest of URLS in default browser
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
        public void onPageFinished(WebView view, String url) {
            mySwipeRefreshLayout.setRefreshing(false);
        }
    });
    // Load the webpage
    browser.loadUrl("https://example.com/");

    mySwipeRefreshLayout = this.findViewById(R.id.swipeContainer);

    mySwipeRefreshLayout.setOnRefreshListener(
            new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    browser.reload();

                }
            }
    );

}
...