2017-10-21 6 views
-2

Here the vector of what i'm trying to do센터 로고

2 개 탭과 두 탭 사이에 하나 개 이미지 뷰 또는 뭔가가있을 것입니다, 그리고 로고는 클릭 할 수 없거나한다.

거의 모든 접근 방식을 시도했지만 실패했습니다.

어떻게해야할까요?

코드 :

 TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs2); 
     tabLayout.setupWithViewPager(mViewPager); 
     tabLayout.getTabAt(1).setIcon(R.drawable.logo); 



    } 

    public class SectionsPagerAdapter extends FragmentPagerAdapter { 

     public SectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 

      switch (position) { 
       case 0: 

        return new LeaderBoard(); 

       case 1: 

        return new Logo(); 

       case 2: 

        return new Recent_Post(); 

       default: 

        return null; 
      } 

     } 

     @Override 
     public int getCount() { 
      // Show 3 total pages. 
      return 3; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      switch (position) { 
       case 0: 
        return "LeaderBoard"; 
       case 1: 
        return ""; 
       case 2: 
        return "Recent Posts"; 
      } 
      return null; 
     } 
    } 
+1

어디에서 시작할 수 있는지 보여 줄 수 있습니까? 얼마나 멀리 도달 했습니까 – Xenolion

+0

코드가 너무 많기 때문에 공유 할 수는 없지만 개념을 공유 할 수는 있습니다. 다른 탭을 추가했는데 탭이 3 개가있어 중간 탭은 제목의 텍스트가 아닌 로고로만 구성되어 있지만 문제는 원하는 다른 뷰를 만듭니다. 중간 탭을 클릭 할 수 없어야합니다. –

+1

질문하는 것이 쉽습니다. 그래서 나는 코드로 대답 할 수 있습니다. (어떻게 우리가 StackOverflow에서 할) 그렇지 않으면 downvoted 및 삭제됩니다. 우리가 수정해야 할 것을 보여 줄 수 있도록 시도한 정도를 보여줘야합니다. – Xenolion

답변

1

나는 서로 간의 탭, 어떤 계산을 전환하여 내 문제를 해결했습니다.

int currentScreen = 0; 

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

      @Override 
      public void onPageSelected(int position) { 
       if (position == 1) { 
        if(currentScreen == 0) { 
         mViewPager.setCurrentItem(2); 
         currentScreen = 2; 
        }else{ 
         mViewPager.setCurrentItem(0); 
         currentScreen = 0; 
        } 
       } 
      } 

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

문제 해결을위한 축하합니다! 첫 번째 upvote 줄께! – Xenolion