Android在ViewPager上的每个调用Fragment上显示简单的Toast

时间:2016-09-10 08:29:44

标签: android

你假设我在viewpager上有两个片段,我可以通过滑动在它们之间切换,例如Fragment1Fragment2

当我刷卡时我想要的是什么?我想在开启它们之间显示吐司,例如当我轻扫以打开Fragment1,应用程序显示吐司,或当我滑动以打开Fragment2应用程序show toast时,再次显示吐司每个显示和切换片段,

我该怎么做?我无法找到有关此解决方案的任何文档

4 个答案:

答案 0 :(得分:1)

viewPager.setOnPageChangeListener(new OnPageChangeListener() {
    public void onPageScrollStateChanged(int state) {}
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

    public void onPageSelected(int position) {
        // Show your Toast Here like
        Toast.makeText(app.getBaseContext(),"Some string", 
            Toast.LENGTH_SHORT).show();
    }
});

如果您想在片段中使用某种方法,请在每个要显示吐司的片段中使用此方法

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
}

答案 1 :(得分:0)

试试这个

 viewpagerEvent.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
             //toast message here

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });

答案 2 :(得分:0)

OnPageChangeListener上设置ViewPager,以便在更改/滚动或选择页面时获得回调。

    pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            // Show fragment change/switch toast 
    Toast.makeText(this,"Fragment1", 
        Toast.LENGTH_LONG).show();
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });

答案 3 :(得分:-2)

在页面更改时,您必须为两个片段创建条件。尝试下面的活动类代码。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
   @Override
   public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }
    @Override
    public void onPageSelected(int position) {
         if(position == 0)
                // Toast For Fragment 1
         if(position == 1)
                // Toast For Fragment 2
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});