在viewpager中更改选项卡的方法调用

时间:2018-06-22 11:17:49

标签: android tabs

更改选项卡后如何在片段中调用方法。 我尝试在片段中使用onPause(),但没有被调用。 我正在使用ViewPager。

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以覆盖setUserVisibleHint(boolean isVisibleToUser)方法并将其用于此目的。更改选项卡并选择片段时,isVisibleToUser将为true。在以前可见的其他片段中,将使用false调用此方法。

编辑setUserVisibleHint将被多次调用。但是在那种情况下,您可以依靠getActivity()不为空。即if (isVisibleToUser && getActivity() != null)

答案 1 :(得分:0)

通过以下方式将ViewPager.OnPageChangeListener添加到ViewPager:

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
       <method call>
    }
}

因此,每当用户在ViewPager的页面上滑动时,您将在onPageSelected()方法中获得该页面位置的回调,然后可以在其中调用片段的方法

答案 2 :(得分:0)

您可以在此处使用界面。 在包含视图寻呼机的“活动”中定义您的界面

public interface MyInterface{
     void callMethod();
}

初始化接口并像这样调用

viewPager.addOnPageChangeListener(new OnPageChangeListener() {
     public void onPageScrollStateChanged(int state) {

     }
     public void onPageScrolled(int position, float positionOffset, 
     int positionOffsetPixels) {

     }

     public void onPageSelected(int position) {
       myInterface.callMethod();
    }
    });

然后在您的片段中实现该方法,然后在回调中调用您的方法。

Myfragment extends Fragment implements MyInterface{
 //
  @Override
  void callMethod(){
     //call your method here
  }

}