반응형
페이지 변경 청취자에서 페이지 설정 보기 더 이상 사용되지 않음
오늘은 제가 설정하려고 합니다.ViewPager.setOnPageChangeListener
감가상각된 걸 알게 됐어요
ViewPager.setOnPageChangeListener
는 지금 더 이상 사용되지 않습니다.사용할필요가 있습니다ViewPager.addOnPageChangeListener
대신.
예를들면,
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) {
}
});
효과가 있었습니다.
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) {
}
});
ViewPager.setOnPageChangeListener 대신 ViewPager.addOnPageChangeListener를 사용합니다.
누군가가 코틀린에서 해결책을 필요로 할 경우를 대비해:
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.
}
})
다음을 통해 달성할 수 있습니다.SimpleOnPageChangeListener
아래는 코드:
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);
필요한 경우 인터페이스를 만듭니다.
public interface FragmentLifecycle { public void onPauseFragment(); public void onResumeFragment();
}
표시된 것처럼 뷰 페이지의 모든 조각에 인터페이스 구현
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(); }
addOnPageListener를 사용하는 방법을 나열합니다.
viewPager.adOnPageChangeListener(새 ViewPager)를 입력합니다.OnPageChangeListener() {현재위치 = 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) { } });
통화를 일시 중지() 또는 재개() 플래그먼트()에 구현합니다.
이것은 새로운 navbar 방법으로 view pager It worked for me.
binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
switch (position) {
case 0:
binding.bottomNavigation.getMenu().findItem(R.id.nav_item_Home).setChecked(true);
break;
case 1:
binding.bottomNavigation.getMenu().findItem(R.id.nav_item_Booking).setChecked(true);
break;
case 2:
binding.bottomNavigation.getMenu().findItem(R.id.nav_item_Transaction).setChecked(true);
break;
case 3:
binding.bottomNavigation.getMenu().findItem(R.id.nav_item_HealthyFood).setChecked(true);
break;
}
}
});
언급URL : https://stackoverflow.com/questions/30867852/viewpager-setonpagechangelistener-deprecated
반응형
'bestsource' 카테고리의 다른 글
파이썬에서 데이터베이스 연결 풀링을 위한 가장 좋은 솔루션은 무엇입니까? (0) | 2023.10.26 |
---|---|
ng-required vs required 사용 (0) | 2023.10.26 |
jquery 특정 양식에서 모든 입력 받기 (0) | 2023.10.26 |
PDO - FETCH_CLASS - 결과를 매개 변수로 생성자에게 전달 (0) | 2023.10.26 |
PIL을 사용하여 픽셀의 RGB 가져오기 (0) | 2023.10.26 |