【问题标题】:How do I add back & home button in action bar button for WebView in my android app?如何在我的 android 应用程序中为 WebView 的操作栏按钮添加返回和主页按钮?
【发布时间】:2017-06-09 08:37:32
【问题描述】:

我制作了一个使用 WebView 来显示移动网站的应用程序。我还添加了 ProgressDialog,它会一直显示到页面完成加载。我想在我的应用程序的操作栏中添加一个返回和主页按钮。当我们点击移动网站主页中的任何链接时,这些按钮应该会出现,当我们返回主页时会消失(类似于 Indeed 职位搜索应用程序)。

【问题讨论】:

    标签: android webview webpage back


    【解决方案1】:

    This page 可以帮助你。

    操作栏按钮的行为就像溢出菜单的元素一样。
    只需在您的菜单资源文件中添加一个<item>,其属性为app:showAsAction="ifRoom"app:showAsAction="always"

    根据 android dev site 你的 xml 应该是这样的:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <!-- "Mark Favorite", should appear as action button if possible -->
        <item
            android:id="@+id/action_back"
            android:icon="@drawable/ic_go_back"
            android:title="@string/action_back"
            app:showAsAction="ifRoom"/>
    
        <!-- Settings, should always be in the overflow -->
        <item android:id="@+id/action_settings"
              android:title="@string/action_settings"
              app:showAsAction="never"/>
    
    </menu>
    

    然后你必须为那个按钮附加一个监听器:就像它在溢出菜单中一样处理。所以你必须覆盖onOptionsItemSelected 添加类似if (mWebView.canGoBack()) {mWebView.goBack();} 的东西

    代码如下:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_back:
                if (mWebView.canGoBack()) {
                    mWebView.goBack();
                }
    
            // ... other cases ...
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      只需在 Back 按钮和 Home 按钮上添加 onClickListeners

      1.对于后退按钮的实现。

      backButton.setOnClickListener(new View.OnClickListener() {
                              @Override
                              public void onClick(View view) {
                                     if(webView.canGoBack()){ 
                                        webView.goBack();
                                       }
      
                              }
                      });
      

      2.用于主页按钮的实现。

      homeButton.setOnClickListener(new View.OnClickListener() {
                              @Override
                              public void onClick(View view) {
      
                                      while(webView.canGoBack())
                                              {
                                                      webView.goBack();
      
                                              }
      
                              }
                      });
      

      【讨论】:

        【解决方案3】:

        您可以根据当前 URL 更改 URL 时简单地设置这两个菜单操作的可见性:

        actionBack.setVisibility(yourWebView.getUrl().equals("www.yourHomePage.com") ? View.INVISIBLE : View.VISIBLE);
        

        【讨论】:

        • 你能告诉我把这个放在哪里吗?什么是 actionBack(工具栏中的菜单项或向上按钮)?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-17
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多