【发布时间】:2017-06-09 08:37:32
【问题描述】:
我制作了一个使用 WebView 来显示移动网站的应用程序。我还添加了 ProgressDialog,它会一直显示到页面完成加载。我想在我的应用程序的操作栏中添加一个返回和主页按钮。当我们点击移动网站主页中的任何链接时,这些按钮应该会出现,当我们返回主页时会消失(类似于 Indeed 职位搜索应用程序)。
【问题讨论】:
标签: android webview webpage back
我制作了一个使用 WebView 来显示移动网站的应用程序。我还添加了 ProgressDialog,它会一直显示到页面完成加载。我想在我的应用程序的操作栏中添加一个返回和主页按钮。当我们点击移动网站主页中的任何链接时,这些按钮应该会出现,当我们返回主页时会消失(类似于 Indeed 职位搜索应用程序)。
【问题讨论】:
标签: android webview webpage back
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 ...
}
}
【讨论】:
只需在 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();
}
}
});
【讨论】:
您可以根据当前 URL 更改 URL 时简单地设置这两个菜单操作的可见性:
actionBack.setVisibility(yourWebView.getUrl().equals("www.yourHomePage.com") ? View.INVISIBLE : View.VISIBLE);
【讨论】: