Man*_*ath 29 android onresume android-fragments
onResume()当我们在片段之间切换多次时,不会调用方法.那么,有没有更好的方法来处理恢复操作?
小智 41
代码如下:
步骤1
创建界面:
public interface YourFragmentInterface {
void fragmentBecameVisible();
}
Run Code Online (Sandbox Code Playgroud)
第2步
在setOnPageChangeListener中附加Listner:
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(final int position, final float v, final int i2) {
}
@Override
public void onPageSelected(final int position) {
YourFragmentInterface fragment = (YourFragmentInterface) mPagerAdapter.instantiateItem(mViewPager, position);
if (fragment != null) {
fragment.fragmentBecameVisible();
}
}
@Override
public void onPageScrollStateChanged(final int position) {
}
});
Run Code Online (Sandbox Code Playgroud)
步骤:3
在片段中实现接口:
public class yourActivity extends SherlockFragment implements YourFragmentInterface{
@Override
public void fragmentBecameVisible() {
System.out.println("TestFragment");
}
}
Run Code Online (Sandbox Code Playgroud)
fragmentBecameVisible()在片段切换期间此方法调用的所有yor片段活动中实现此列表器.
谢谢.
您可以使用接口简单地模拟每个片段的 onResume()!
1-创建一个名为 FragmentLifecycle 的接口,代码如下:
public interface FragmentLifecycle {
public void onResumeFragment();
}
Run Code Online (Sandbox Code Playgroud)
2-让每个Fragment实现接口:
public class FragmentOne extends Fragment implements FragmentLifecycle
Run Code Online (Sandbox Code Playgroud)
3- 在每个片段中实现接口方法:
@Override
public void onResumeFragment() {
Log.i(TAG, "onResumeFragment()");
Toast.makeText(getActivity(), "onResumeFragment():" + TAG,Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
4-ViewPager页面变化时调用接口方法:
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
FragmentLifecycle fragmentToShow = (FragmentLifecycle)adapter.getItem(position);
fragmentToShow.onResumeFragment();
}
});
Run Code Online (Sandbox Code Playgroud)
享受!
| 归档时间: |
|
| 查看次数: |
57833 次 |
| 最近记录: |