Tabhost和片段活动

时间:2014-04-01 07:53:27

标签: android android-fragments android-tabs android-pageradapter

我无法正确理解我的FragmentActivity课程中这些功能的用途。

    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int pos) {
            // on changing the page
            // make respected tab selected
            position = pos;
            actionBar.setSelectedNavigationItem(pos);

            new Getquestions().execute();
        }



        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // on tab selected
    // show respected fragment view
    viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {

}

我正在使用视图寻呼机进行页面滑动,我想要做的是,如果条件为假,例如我在edit texts中有三个fragment one,并且如果用户想要滑到fragment two而不填写文本然后不能滑动。

我试图找到任何这样的例子,但我无法找到它。有人可以帮忙吗?理解这些功能将有助于我实现我的想法

2 个答案:

答案 0 :(得分:0)

片段的记录优势是,它们可以在运行时添加或删除到活动中。

您想要的是最初只有一个片段,一旦满足要求,请为您的活动添加下一个片段。

答案 1 :(得分:0)

我从另一个论坛得到答案

公共类CustomViewPager扩展了ViewPager {

private boolean isPagingEnabled;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.isPagingEnabled = true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.isPagingEnabled) {
        return super.onTouchEvent(event);
    }

    return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.isPagingEnabled) {
        return super.onInterceptTouchEvent(event);
    }

    return false;
}

public void setPagingEnabled(boolean b) {
    this.isPagingEnabled = b;
}

}

现在,当您想要禁用滑动时,只需setPagingEnable = false;

并在布局文件中用<com.android.support.V4.ViewPager>替换所有<com.yourpackage.CustomViewPager> tags标记。