2017-05-07 8 views
0

私はBottomNavigationViewViewPagerにカップリングしています。それは大丈夫です。その主な理由は、スワイプとアニメーションです。ビューページのナビゲーションでリストにないフラグメントを開く?

私のリスナーの3つの可能性があります。

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
     = new BottomNavigationView.OnNavigationItemSelectedListener() { 

    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.navigation_home: 
       viewPager.setCurrentItem(0); 
       return true; 
      case R.id.navigation_solicitation: 
       viewPager.setCurrentItem(1); 
       return true; 
      case R.id.navigation_my_profile: 
       viewPager.setCurrentItem(2); 
       return true; 
     } 
     return false; 
    } 

}; 

はしかし、他の、非上場の断片があります。ビューページャーで断片を膨らませ、一度スワイプするか他の何かを選択したら、それをなくすことができますか?メインのレイアウトファイル内でこのviewpager以下

+0

ネストされたフラグメントを探しているようです。どのように進むかわからない。 – Rosenberg

+0

質問は不明です。これらの断片を 'ViewPager'のアダプターに置くことで何が問題になりますか? – azizbekian

+0

私はそれをナビゲーションの一部にしたいとは考えていません。 – Rosenberg

答えて

0

ソリューション

追加:以下

<FrameLayout 
    android:id="@+id/content" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1"> 
</FrameLayout> 

は、新しいフラグメントを開き、viewpagerがなくなっ作るために使用される方法である:

 viewPager.setVisibility(viewPager.GONE); 
     fragment = new PostSolicitationFragment(); 
     FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
     ft.setCustomAnimations(R.anim.slide_in_up, R.anim.slide_out_down); 
     ft.replace(R.id.content, fragment); 
     ft.commit(); 

そして、これは新しいonNavigationSelectedItemsで、ユーザーがメニュー項目をクリックした場合に再び表示されます。

@Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.navigation_home: 
       viewPager.setVisibility(VISIBLE); 
       viewPager.setCurrentItem(0); 
       return true; 
      case R.id.navigation_solicitation: 
       viewPager.setVisibility(VISIBLE); 
       viewPager.setCurrentItem(1); 
       return true; 
      case R.id.navigation_my_profile: 
       viewPager.setVisibility(VISIBLE); 
       viewPager.setCurrentItem(2); 
       return true; 
     } 
     return false; 
    } 
関連する問題