Hôm nay tôi đang cố gắng thiết lập ViewPager.setOnPageChangeListener
và tôi đã phát hiện ra rằng nó không được chấp nhận.
Hôm nay tôi đang cố gắng thiết lập ViewPager.setOnPageChangeListener
và tôi đã phát hiện ra rằng nó không được chấp nhận.
Câu trả lời:
ViewPager.setOnPageChangeListener
bây giờ không được dùng nữa Cần sử dụng ViewPager.addOnPageChangeListener
thay thế.
ví dụ,
ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Bạn có thể tìm thấy ở đây.
điều này làm việc cho tôi:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
conterchange.setText(""+(1+position));
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Chỉ trong trường hợp ai đó cần giải pháp trong kotlin :
viewPager.addOnPageChangeListener (object: ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPageSelected(position: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
Bạn có thể đạt được thông qua SimpleOnPageChangeListener
Dưới đây là Mã:
private Fragment page = null;
/** Defining a listener for pageChange */
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager_selectPhotos + ":" + position);
System.out.println(page);
switch (position) {
case 0:
break;
case 1:
break;
default:
break;
}
}
};
/** Setting the pageChange listener to the viewPager */
_pager.setOnPageChangeListener(pageChangeListener);
Tạo một giao diện nếu cần;
public interface FragmentLifecycle {
public void onPauseFragment();
public void onResumeFragment();
}
Triển khai Giao diện trong mọi phân đoạn trong chế độ xem như được hiển thị
public class FragmentCast extends Fragment implements FragmentLifecycle { @Override public void onPauseFragment() { Log.i(TAG, "onPauseFragment()"); Toast.makeText(getActivity(), "onPauseFragment():" + TAG, Toast.LENGTH_SHORT).show(); } @Override public void onResumeFragment() { Log.i(TAG, "onResumeFragment()"); Toast.makeText(getActivity(), "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show(); }
Liệt kê đây là cách bạn sử dụng addOnPageListener
nhập viewPager.addOnPageChangeListener (new ViewPager.OnPageChangeListener () {int currentPocation = 0;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
FragmentLifecycle fragmentLifecycleToShow =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem());
fragmentLifecycleToShow.onResumeFragment();
FragmentLifecycle fragmentLifecycleToHide =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, currentPosition);
fragmentLifecycleToHide.onPauseFragment();
currentPosition = position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Thực hiện các cuộc gọi của bạn trong onPauseFragment () hoặc onResumeFragment ()