2017-10-04 120 views
0

我想在使用Android的底部導航視圖時獲得關於構建我的應用架構的最佳方式的一些輸入。Android底部導航視圖的正確活動/片段架構視圖

目前我在我的MainActivity中定義我的BottomNavigationView。它看起來像這樣。

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     BottomNavigationView bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation); 
     bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
       Fragment selectedFragment = null; 

       switch (item.getItemId()){ 
        case R.id.action_home: 
         selectedFragment = HomeFragment.newInstance(); 
         break; 

        case R.id.action_search: 
         selectedFragment = SearchFragment.newInstance(); 
         break; 

        case R.id.action_message: 
         selectedFragment = MessageFragment.newInstance(); 
         break; 

        case R.id.action_profile: 
         selectedFragment = ProfileFragment.newInstance(); 
         break; 
       } 

       FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
       transaction.replace(R.id.frame_layout, selectedFragment); 
       transaction.commit(); 
       return true; 
      } 
     }); 

     //Manually displaying the first fragment - one time only 
     FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
     transaction.replace(R.id.frame_layout, HomeFragment.newInstance()); 
     transaction.commit(); 

    } 

的問題是,一旦我點擊一個選項卡上,它開闢了一個片段,我想有那些片段開拓其他片段/活動(即:

  1. 我打開個人資料標籤(`ProfileFragment`負載)
  2. 我點擊從`ProfileFragment`一個按鈕,然後從這個`SignUpFragment`或`SignUpActivity`負載

運行到許多錯誤之後,我再搜索如何構建我的應用程序,但我發現結果不一。有誰知道使用BottomNavigationViewFragments的正確方法,在那些fragments我可以加載更多Activities/fragments。預先感謝。

回答

1

每種方法都取決於項目和您假裝要實現的目標。我必須編寫一個底層導航應用程序,該應用程序可與20多種底部導航佈局一起使用,這意味着一個單一的活動。您希望實現的過程與在選定選項卡上的所需選項卡中設置所需片段幾乎相同,不同之處在於,不是在選項卡上錄製,而是點擊片段內的按鈕,將替換與新的想要的片段。

點擊標籤 - >替換片段 - >按鈕點擊裏面的片段 - >替換片段 - >等等。

由於您正在使用替換,您將不得不謹慎處理您的onBackPress事件,因爲我假設在每一次後退按下您希望返回到前一個片段。我自己,我已經在主活動中實現了一個接口,監聽onBackPress上的可見片段。

相關問題