ViewPager onPageSelected设置选项卡为初始状态

时间:2015-04-16 10:08:46

标签: android android-viewpager android-webview

我有四个标签和一个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;
        }
    } 

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试为 WebView

添加类似的代码

检查关键事件是否为“后退”按钮以及是否有历史记录

if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) {
    view.goBack();
    return true;
}