我有四个标签和一个ViewPager
。在每个标签上我都有一个WebView
。我想要的是在选择标签时将WebView
设置为它的第一页
这就是我的尝试:
@Override
public void onPageSelected(int position) {
actionBar.getTabAt(position).select();
if(position == 0) {
ActivityFragment fr = (ActivityFragment)getSupportFragmentManager().getFragments().get(0);
WebView view = fr.browser;
if(view.canGoBack())
view.goBack();
}
else if(position == 1) {
GroupFragment fr = (GroupFragment)getSupportFragmentManager().getFragments().get(1);
WebView view = fr.browser;
if(view.canGoBack())
view.goBack();
}
else if(position == 2) {
MessageFragment fr = (MessageFragment)getSupportFragmentManager().getFragments().get(2);
WebView view = fr.browser;
if(view.canGoBack())
view.goBack();
} else if(position == 3){ NotificationFragment fr =(NotificationFragment)getSupportFragmentManager()。getFragments()。get(3); WebView视图= fr.browser; 如果(view.canGoBack()) view.goBack(); } }
但if(view.canGoBack())
永远不会成真。我知道我可以通过设置loadUrl
来执行此操作,但我不想重新加载WebView
。这将是我的最后选择。
PagingAdapter getItem
@Override
public Fragment getItem(int index) {
try {
switch (index) {
case 0:
// Top Rated fragment activity
return Fragment.instantiate(context, ActivityFragment.class.getName());
case 1:
// Games fragment activity
return Fragment.instantiate(context, GroupFragment.class.getName());
case 2:
// Movies fragment activity
return Fragment.instantiate(context, MessageFragment.class.getName());
case 3:
return Fragment.instantiate(context, NotificationFragment.class.getName());
// case 4:
// return Fragment.instantiate(context, FlyoutFragment.class.getName());
}
return null;
}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
}
我怎样才能做到这一点?
答案 0 :(得分:0)
尝试为 WebView
添加类似的代码检查关键事件是否为“后退”按钮以及是否有历史记录
if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) {
view.goBack();
return true;
}