如何确定用户何时幻灯片到FragmentActivity中的另一个标签?

时间:2014-02-14 01:55:42

标签: android android-fragmentactivity

我在Android中使用默认活动,您可以选择“可滚动标签+滑动”作为导航类型。滑动后如何确定当前显示的选项卡?

我在班级DummySectionFragment

中尝试过这样的做法
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_starting_dummy,
                    container, false);
            TextView dummyTextView = (TextView) rootView
                    .findViewById(R.id.section_label);
            dummyTextView.setText(Integer.toString(getArguments().getInt(
                    ARG_SECTION_NUMBER)));


            switch(getArguments().getInt(ARG_SECTION_NUMBER))
            {
                case 1: // do something
                 ....
            }

但它不起作用,因为这种方法onCreateView在滑动后不会被调用。我想有一些简单的方法可以做到,但我找不到它。 (如果它可用于API 8,那将是非常好的)

2 个答案:

答案 0 :(得分:1)

要知道何时更改网页,您可以OnPageChangeListener使用ViewPager。您可以使用setOnPageChangeListener()设置此项。

vpPager.setOnPageChangeListener(new OnPageChangeListener() {

    // This method will be invoked when a new page becomes selected.
    @Override
    public void onPageSelected(int position) {}

    // This method will be invoked when the current page is scrolled
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

    // Called when the scroll state changes: 
    // SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
    @Override
    public void onPageScrollStateChanged(int state) {}
});

答案 1 :(得分:0)

考虑覆盖片段中的setUserVisibleHint()方法。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        Log.d(DEBUG_TAG, "Fragment is visiable");
        // do something you want
    }
}