2016-03-07 46 views
-1

我在活动中有2个选项卡片段。活动的中心有一个圆形图像视图。当我滑动第一个片段时,我需要显示第一个图像&与第二个选项卡滑动不同的图像相同。更改ImageView取决于选项卡

enter image description hereenter image description here

UPDATE:

static class ViewPagerAdapter extends FragmentPagerAdapter { 
     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 
    @Override 
    public Fragment getItem(int position) { 
     Fragment fragment = null; 
     Bundle bundle = new Bundle(); 
     bundle.putInt("position", position); 
     switch (position) { 
      case 0: 
       imgProfile.setImageResource(R.drawable.login_logo); 
       return new LogInFragment(); 

      case 1: 
       imgProfile.setImageResource(R.drawable.add_image); 
       return new SignUpFragment(); 
     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     return 2; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 

     switch (position) { 
      case 0: 

       return "LOGIN"; 
      case 1: 

       return "SIGNUP"; 
     } 
     return null; 
    } 
} 
+0

检查我的答案,它的工作原理;) –

回答

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

    } 

    @Override 
    public void onPageSelected(int position) { 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    if (i == 0) { 
     ImageView.setBackgroundResource(R.drawable.image1); 
    } 
    else if (i ==1) { 
     ImageView.setBackgroundResource(R.drawable.image2); 
    } 
    } 
}); 
+0

我在我的应用程序使用ViewPager。 –

+0

查看编辑答案 – sasikumar

+0

对不起..工作 –

1

好了,现在我明白你想要做什么: 首先删除所有的代码,你改变形象,尝试这个办法:

static class ViewPagerAdapter extends FragmentPagerAdapter { 
     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      Fragment fragment = null; 
      Bundle bundle = new Bundle(); 
      switch (position) { 
       case 0: 
        yourImageView.setImageResource(R.id.yourResource1); 
        fragment = new LogInFragment(); 
        break; 
       case 1: 
        yourImageView.setImageResource(R.id.yourResource2); 
        fragment = new SignUpFragment(); 
        break; 
      } 
      return fragment; 
     } 

     @Override 
     public int getCount() { 
      return 2; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      String str = ""; 
      switch (position) { 
       case 0: 
        str = "LOGIN"; 
        break; 
       case 1: 
        str = "SIGNUP"; 
        break; 
      } 
      return str; 
     } 
    } 

这就是所有你需要的

+0

对不起。获取'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager'对空对象引用。 –

+0

请显示你的片段代码,否则如果你有2个不同的片段,为什么不创建setImageResource? –

+0

请检查我的编辑代码 –

0

最后得到它通过使用下面的代码,在@sasikumar答案作了一些修改。

而不是把onPageScrollStateChanged我曾经得到位置使用onPageSelected

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

    @Override 
    public void onPageSelected(int position) { 
     int i = 0; 
     if (position == 0) { 
      Log.e("Tab Position", String.valueOf(position)); 
      imgProfile.setImageResource(R.drawable.login_logo); 
     } else if (position == 1) { 
      Log.e("Tab Position", String.valueOf(position)); 
      imgProfile.setImageResource(R.drawable.add_image); 
     } 
    } 

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