>我在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 会非常好)
要知道页面何时更改,您可以使用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) {}
});
考虑覆盖片段中的 setUserVisibleHint()
方法。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
Log.d(DEBUG_TAG, "Fragment is visiable");
// do something you want
}
}