webview片段按回return即可
webview fragment press back to return to
嗨,我有一个 android 应用程序,其中有一个 recycleview
。当用户在回收 viewholder
上单击 button
时。应用程序将启动 webview
(在 fragment
内)。我想在用户单击后退按钮时处理,如果有历史记录,webview
将返回,如果没有历史记录,应用程序将关闭 webview
片段并返回 recycleview
.
我已经成功处理了有history的时候后面(但是没有history的时候webview无法返回到recycle view
这是我的网页视图代码
webView.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webView.canGoBack()) {
webView.goBack();
}else {
getActivity().getSupportFragmentManager().popBackStack();
}
return true;
}
return false;
}
});
这些代码有什么问题吗?非常感谢任何帮助。谢谢
编辑我在 recycleview
adapter
class 中使用这些代码来处理按钮点击 ViewHolder
class
url.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle bundle = new Bundle();
bundle.putString("topStoryUrl", topStories.get(getLayoutPosition()).getUrl());
TopStoryWebView topStoryWebViewFragment = new TopStoryWebView();
topStoryWebViewFragment.setArguments(bundle);
if (ItemListActivity.mTwoPane) {
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.item_detail_container, topStoryWebViewFragment)
.commit();
} else {
topStoryWebViewFragment.setArguments(bundle);
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.frameLayout, topStoryWebViewFragment)
.commit();
}
}
});
addToBackStack 会将您的片段添加到堆栈中,稍后您可以访问此堆栈
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.item_detail_container, topStoryWebViewFragment)
// Add this transaction to the back stack (name is an optional name for this back stack state, or null).
.addToBackStack(null)
.commit();
嗨,我有一个 android 应用程序,其中有一个 recycleview
。当用户在回收 viewholder
上单击 button
时。应用程序将启动 webview
(在 fragment
内)。我想在用户单击后退按钮时处理,如果有历史记录,webview
将返回,如果没有历史记录,应用程序将关闭 webview
片段并返回 recycleview
.
我已经成功处理了有history的时候后面(但是没有history的时候webview无法返回到recycle view
这是我的网页视图代码
webView.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webView.canGoBack()) {
webView.goBack();
}else {
getActivity().getSupportFragmentManager().popBackStack();
}
return true;
}
return false;
}
});
这些代码有什么问题吗?非常感谢任何帮助。谢谢
编辑我在 recycleview
adapter
class 中使用这些代码来处理按钮点击 ViewHolder
class
url.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle bundle = new Bundle();
bundle.putString("topStoryUrl", topStories.get(getLayoutPosition()).getUrl());
TopStoryWebView topStoryWebViewFragment = new TopStoryWebView();
topStoryWebViewFragment.setArguments(bundle);
if (ItemListActivity.mTwoPane) {
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.item_detail_container, topStoryWebViewFragment)
.commit();
} else {
topStoryWebViewFragment.setArguments(bundle);
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.frameLayout, topStoryWebViewFragment)
.commit();
}
}
});
addToBackStack 会将您的片段添加到堆栈中,稍后您可以访问此堆栈
((FragmentActivity) context).getSupportFragmentManager()
.beginTransaction()
.add(R.id.item_detail_container, topStoryWebViewFragment)
// Add this transaction to the back stack (name is an optional name for this back stack state, or null).
.addToBackStack(null)
.commit();