我在视图中是新的pager.i在视图中有2页页面。每个页面都包含按钮..我希望在页面完全加载后显示按钮。现在按钮显示半自动滚动..
class MyPageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
添加页面
pageAdapter = new MyPageAdapter(activity.getSupportFragmentManager(), fragments);
viewpager.setId(position);
viewpager.setAdapter(pageAdapter);
片段:
public class secondclass extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_secondclass, container, false);
return rootView;
}
请帮帮我..
答案 0 :(得分:0)
只需使用OnPageChangeListener
。
答案 1 :(得分:0)
实际上,您需要完成一些繁琐的任务。 首先,包含viewpager的活动应该有一种与viewpager的片段进行通信的方法。一旦你完成了这件事。
然后在viewpager上设置OnPageChangeListener 并且其中一个重写的回调方法将是以下一个
@Override
public void onPageSelected(int position) {
// you know the position now. send the message to the fragment at this position to show the button or do any particular task
}
你们都准备好了
在viewpager中,即使在用户实际可见之前,也会加载附近的片段,这样做是为了提供平滑的滚动效果。 因此,即使在用户滚动到第二页之前,已经调用了第二个片段的onCreateView和onResume方法。 因此,要在用户完全加载页面时做一些事情,我们需要使用onPageSelected方法,并且在position参数的帮助下,我们通知该位置的片段来执行任务。 在您的情况下显示按钮...所以您需要在布局中设置按钮INVISIBLE的可见性,并在选择页面时使其可见。
对于上面的工作,你的活动需要有一个对片段的引用...或者你可以请求viewpageradapter通过对当前片段进行一点缓存来为你提供引用...应用你的任何逻辑
假设所有片段都是MyFragment类型并且有一个方法doVisibleTask使按钮可见,并且视图寻呼机适配器的getItem每次为特定位置返回相同的实例。 你可以做以下
@Override
public void onPageSelected(int position) {
// get the reference to the fragment
MyFragment mf = (MyFragment)viewPagerAdapter.getItem(position);
mf.m=doVisibleTask();
// you know the position now. send the message to the fragment at this position to show the button or do any particular task
}