2016-03-07 70 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) { 
    } 
});