我确实看过每一个关于让后退按钮与 fragment 内的 WebView 一起工作的问题,但似乎无法让它在我的情况下工作。
我目前正在尝试获取 blackbelt's回答工作,但我的应用程序只是在我按下后退按钮后关闭。
任何帮助都会很棒,谢谢。
public class MainActivity extends BaseActivity {
private Fragment FragmentArchietecture = new FragmentShakira();
WebView webview;
private Fragment mContent;
public MainActivity() {
super(R.string.app_name);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
mContent = getSupportFragmentManager().getFragment(
savedInstanceState, "mContent");
if (mContent == null)
mContent = new FragmentShakira();
setContentView(R.layout.content_frame);
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, FragmentArchietecture, "webby")
.commit();
setBehindContentView(R.layout.menu_frame);
getSupportFragmentManager().beginTransaction()
.replace(R.id.menu_frame, new RandomList()).commit();
ActionBar bar = getSupportActionBar();
bar.setTitle(R.string.app_name);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
setSlidingActionBarEnabled(true);
}
@Override
public void onBackPressed() {
Fragment webview = getSupportFragmentManager().findFragmentByTag(
"webby");
if (webview instanceof FragmentShakira) {
boolean goback = ((FragmentShakira) webview).canGoBack();
if (!goback)
super.onBackPressed();
}
}
}
fragment :
public class FragmentShakira extends SherlockFragment {
static WebView webview;
String TAG = "webby";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater
.inflate(R.layout.fragmentwebview, container, false);
WebView webview = (WebView) view.findViewById(R.id.webView1);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient());
webview.loadUrl("https://www.google.co.uk/");
return view;
}
public boolean canGoBack() {
return webview != null && webview.canGoBack();
}
}
最佳答案
它应该可以工作。如果可以,不要忘记将消息传递给 fragment 以返回
即
if (!goback)
super.onBackPressed();
else
((FragmentShakira) view).goBack();
关于android - 带有 fragment 的后退导航 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157995/