2016-12-24 11 views
0
でスライドの変更

は、私はそのようなのような2 Fragmentsの間でスワイプするためにViewPagerを実装しています。キャッチViewPager

スライド1ディスプレイFragment 1とスライド2 Fragment 2をどうすればよいですか?

答えて

0

フラグメント1とフラグメント2を別々に作成しましたか?はいの場合は、この2つの断片を保持するアクティビティでこれを行います。

private void createViewPager(ViewPager viewPager) { 
     Log.d("activity", "viewpager"); 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFrag(new Fragment1(), ""); 
     adapter.addFrag(new Fragment2(), ""); 

     viewPager.setAdapter(adapter); 
    } 

このようにフラグメントを作成 -

class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFrag(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 

    } 

か、アイコンは、このメソッドを使用してタブを作成する場合 - -

private void createTabIcons() { 
     Log.d("activity", "createtabicons"); 
     TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.tab_item2, null); 
     tabOne.setText("QR Scan"); 
     tabOne.setTypeface(MRR); 
     tabOne.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.image1, 0, 0); 
     tabOne.setCompoundDrawablePadding(5); 
     tabLayout.getTabAt(0).setCustomView(tabOne); 
     tabLayout.getTabAt(0).getCustomView().setSelected(true); 

     TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.tab_item2, null); 
     tabTwo.setText("Mobile No."); 
     tabTwo.setTypeface(MRR); 
     tabTwo.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.image3, 0, 0); 
     tabLayout.getTabAt(1).setCustomView(tabTwo); 
     tabTwo.setCompoundDrawablePadding(5); 
    } 
0

public class Fragment1 extends Fragment { 


     @Nullable 
     @Override 
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

      View v = inflater.inflate(R.layout.transaction_layout, container, false); 



      return v; 

     } 

} 

は次のようにviewpager作成

こんにちは私はあなたを見せます

class MyPageAdapter extends FragmentPagerAdapter { 

    private List<Fragment> fragments; 

    public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) { 
     super(fm); 
     this.fragments = fragments; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return this.fragments.get(position); 
    } 

    @Override 
    public int getCount() { 
     return this.fragments.size(); 
    } 
} 

はOnCreate関数でuはまた

addFragments(); 

私は

ButterKnifeと意見をバインドする必要があります:TIはやって、私はここ
private void addFragments() { 
     List<Fragment> fragments = new ArrayList<>(); 
     chatFragment = new ChatFragment(); 
     remoteFragment = new RemoteFragment(); 
     fragments.add(remoteFragment); 
     fragments.add(chatFragment); 
     MyPageAdapter adapter = new MyPageAdapter(getSupportFragmentManager(), fragments); 
     viewPager.setAdapter(adapter); 
     tabLayout.setupWithViewPager(viewPager); 
     tabLayout.getTabAt(TAB_REMOTE_POSITION) 
       .setIcon(getDrawable(R.drawable.ic_settings_remote_white_24dp)); 
     tabLayout.getTabAt(TAB_SOCIAL_POSITION) 
       .setIcon(getDrawable(R.drawable.ic_group_white_24dp)); 
    } 

は私のアダプタであるmainActivityに2つの断片を得ました
@Bind(R.id.view_pager) 
    ViewPager viewPager; 
    @Bind(R.id.tab_layout) 
    TabLayout tabLayout; 

でも可能です静的アンドロイド

でこれを実装し、uがリスナーを持っていることを覚えておいてください:

private void pageChangeListener() { 
    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) { 
      View view = getCurrentFocus(); 
      if (view != null) { 
       InputMethodManager imm = (InputMethodManager) getSystemService 
         (Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
      } 
     } 
    }); 
}