And*_*bon 133 android android-widget android-viewpager
我在ViewPager中有三个页面(片段),但我只想显示其中两个页面的菜单项.
之前的SO答案中给出的代码似乎不起作用:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser == true) { }
else if (isVisibleToUser == false) { }
}
Run Code Online (Sandbox Code Playgroud)
Eclipse说不需要@Override,也不能设置super.它从未被系统调用,即使它是如何确定当前显示哪个页面?我可以帮忙吗?
Jor*_*oru 263
使用ViewPager.onPageChangeListener:
viewPager.addOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
// Check if this is the page you want.
}
});
Run Code Online (Sandbox Code Playgroud)
Jay*_*ala 116
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) {
}
});
Run Code Online (Sandbox Code Playgroud)
Hem*_*rma 37
您也可以使用ViewPager.SimpleOnPageChangeListener而不是ViewPager.OnPageChangeListener仅覆盖要使用的那些方法.
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
// optional
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
// optional
@Override
public void onPageSelected(int position) { }
// optional
@Override
public void onPageScrollStateChanged(int state) { }
});
Run Code Online (Sandbox Code Playgroud)
希望这有帮助:)
编辑:
根据android API,setOnPageChangeListener (ViewPager.OnPageChangeListener listener)不推荐使用.请检查此网址: - Android ViewPager API
Jat*_*eva 32
For ViewPager2,
viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
}
})
Run Code Online (Sandbox Code Playgroud)
where OnPageChangeCallback is a static class with three methods:
onPageScrolled(int position, float positionOffset, @Px int positionOffsetPixels),
onPageSelected(int position),
onPageScrollStateChanged(@ScrollState int state)
Run Code Online (Sandbox Code Playgroud)
Kis*_*nki 10
对于科特林,
view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
}
override fun onPageSelected(position: Int) {
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111331 次 |
| 最近记录: |