查看传呼机 - 静态变量滑动翻页编程 [英] View Pager - slide to next page programmatically with static variable

查看:127
本文介绍了查看传呼机 - 静态变量滑动翻页编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想作一个幻灯片编程在我ViewPager。

I would like to make a slide programmatically in my ViewPager.

我的问题是,该滑动事件是由放置作为由ViewPager持有的片段的内部的按钮调用。

My problem is, that the event to slide is called by a button that is placed inside of a fragment that is hold by the ViewPager.

我知道了code:

viewpager.setCurrentItem(int index)

而现在我我的想法是让ViewPager变量公共静态从子片段访问它。
但静态变量不是从子片段访问。

And now I my thought was to make the ViewPager variable public static to access it from the child fragment. But the static variable is not accessible from the child fragment.

如何才能做到这一点通过点击器,放置在页面内的按钮进行幻灯片?

How can I achieve this to make a slide by clicking on a button that is placed inside of a page?

推荐答案

您可以使用接口来与你的 ViewPager 通过您的活动片段中说活动举办 $ C>),而不会暴露任何领域。

You can use an interface to interact with your ViewPager via your Activity (or a Fragment hosted in said Activity) without exposing any fields.

ViewPager 片段,创建一个接口

public class FragmentInViewPager extends Fragment {

    private Callback mCallback;

    public interface Callback {
        void setViewPagerCurrentPage(int page);
    }

    @Override
    public void onAttach(Activity activity) {
        mCallback = (Callback) activity; 
        //NB: The above will throw ClassCastException if your Activity
        //Does not implement FragmentInViewPager.Callback
    }

    //To call it...
    int newPageNumber = 27;
    mCallback.setViewPagerCurrentPage(newPageNumber);

让你的活动实施接口,并从那里与你的 ViewPager <互动/ code>直接(如果它在你的活动的变量)或访问它在你的片段中的一个:

Have your Activity implement the interface, and from there interact with your ViewPager directly (if it is a variable in your Activity) or access it in one of your fragments:

public class MainActivity extends AppCompatActivity implements FragmentInViewPager.Callback {

    private ViewPager mViewPager;

    //...
    @Override
    public void setViewPagerCurrentPage(int page) {
        mViewPager.setCurrentItem(page);
        //Or...if it is inside another Fragment...
        ViewPagerFragment frag = (ViewPagerFragment) getFragmentManager().findFragmentByTag("view_pager_fragment_tag");
        if (frag != null) frag.getViewPager().setCurrentItem(page);
    }

这篇关于查看传呼机 - 静态变量滑动翻页编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆