組み込みの戻るボタンを使用して、Web ビュー内またはアプリ内 (場所に関係なく) 1 画面戻るようにしようとしています。そのため、ニュース セクションがあり、それをクリックすると、ニュースページ。次に、[検索] をクリックして Web ビューに移動し、[戻る] をクリックすると、最後に開いたニュース セクションのページが表示されます。また、私がウェブビューにいて、ウェブビュー内をナビゲートして戻ると、ウェブビュー内のページが表示されます。Webview 内で動作するバック コードをいくつか追加しました。ただし、enws セクション ページでは機能しません。ニュース セクションで最後に開いた特定のページではなく、ニュース セクションに戻ります。同じことを達成するためにコードを修正するにはどうすればよいですか? バックに追加したコードは次のとおりです。
private boolean goingBack = false;
private boolean onBackPressClearStack = true;
public void setOnBackPressClearStack(boolean b){
onBackPressClearStack = b;
}
public boolean webViewSteppedBack() {
if (mWebview != null && mWebview.canGoBack()) {
mWebview.goBack();
return true;
}
return false;
}
@Override
public boolean backPressed(final MainActivity mainActivity) {
if (webViewSteppedBack()) {
return true;
}
if (onBackPressClearStack) {
goingBack = true;
FragmentUtils.onBackPressedKnockFragsOffStack(mainActivity, this);
}
return false;
}
public static MyWebViewFragment newInstanceNoBackPressed(final FragmentManager manager, final String searchTerm, final String symbolType, int containerViewId) {
MyWebViewFragment fragment = __newInstance(new MyWebViewFragment(), manager, searchTerm, symbolType, containerViewId);
fragment.setOnBackPressClearStack(false);
return fragment;
}
public static MyWebViewFragment newInstanceNoBackPressed(final MyWebViewFragment fragment, final FragmentManager manager, final String searchTerm, final String symbolType, int containerViewId) {
fragment.setOnBackPressClearStack(false);
return __newInstance(fragment, manager, searchTerm, symbolType, containerViewId);
}
@Override
public void onResume() {
super.onResume();
final MainActivity activity = (MainActivity) getActivity();
activity.updateActionBarTitle();
activity.setBackPressListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (goingBack) {
return null;
}
final MainActivity activity = (MainActivity) getActivity();
activity.setBackPressListener(this);
View view = inflater.inflate(R.layout.fragment_search_answers, container, false);
my webview code.....
return view;
}