我有4个片段,使用view-pager和tabs在主要活动中显示新闻。但是我的代码仅适用于第一个片段,即标签1Back按钮在WebView中无法按预期工作 - Android
在主要活动中,我有
@Override
public void onBackPressed() {
WebView mWebView = (WebView) findViewById(R.id.webview);
if (mWebView.getVisibility() == View.VISIBLE) {
mWebView.setVisibility(View.GONE);
mWebView.loadUrl("about:blank");
}
else {
super.onBackPressed();
}
return;
}
当按下后退按钮,它通过采取用户返回到主布局隐藏web视图那里。它适用于选项卡1
但在片段2,3,4 - 当我按回按钮退出应用程序。我使用相同的代码作为片段1
我发现 - mWebView.getVisibility()== View.VISIBLE没有得到真正的 - 即使在网络视图是碎片2,3,4
可见片段1个代码:
public class WSJFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<News>> {
.........
public WSJFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.newsview, container, false);
............
NewsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
// Find the current earthquake that was clicked on
News currentNews = mAdapter.getItem(position);
String newsUrl = currentNews.getUrl();
progress.setVisibility(View.VISIBLE);
mWebView.setVisibility(View.VISIBLE);
mWebView.loadUrl(newsUrl);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(mWebView, url);
progress.setVisibility(View.GONE);
}
});
}
});
return rootView;
}
........
}
https://github.com/mrafz/W3News
WebView mWebView =(WebView)findViewById(R.id.webview);应该像这样WebView mWebView =(WebView)inflaterView.findViewById(R.id.webview); –
rootView = inflater.inflate(R.layout.newsview,container,false); mWebView =(WebView)rootView.findViewById(R.id.webview);我喜欢这个。这不是问题 – ams92
好吧,但在OnBackPressed()您绑定Webview再次,而不是使用全球变量 –