2017-10-07 66 views
0

我對Android非常陌生,我正在學習使用片段。我創建了一個片段,當我的BottomNavigation視圖上的特定選項卡被選中時,它顯示一個Textview。我打開片段是這樣的:片段處於加載狀態,從活動調用時不加載

public void switchToWorkoutFragment() { 
     FragmentManager manager = getSupportFragmentManager(); 
     manager.beginTransaction().replace(R.id.content, new 
      ListFragment()).commit(); 
    } 

然後我把這個功能,當「鍛鍊」按鈕選擇像這樣:

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

     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.navigation_home: 
        mTextMessage.setText("Stats Fragment"); 
        return true; 
       case R.id.navigation_dashboard: 
        mTextMessage.setText("Workout Fragment"); 
        switchToWorkoutFragment(); 
        return true; 
       case R.id.navigation_notifications: 
        mTextMessage.setText("Goals Fragment"); 
        return true; 
      } 
      return false; 
     } 

    }; 

當我按下按鈕鍛鍊,片段少了點想要加載。它無限期地與旋轉圖標坐在一起,不會加載任何東西。我不知道爲什麼它會這樣做,因爲沒有那麼多東西要加載(就像我說的,它只是一個文本視圖)

回答

0

您是否將偵聽器設置爲視圖? 像:

(BottomNavigationView) nav = findViewById(R.id.bottom_navigation_panel); 
nav.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 
+0

是的它在onCreate方法被設置在MainActivity } –

+0

使其成爲FrameLayout或FragmentLayout而不是ListFragment。 – Shmuel

0

的問題是,你在switchToWorkoutFragment方法傳遞new ListFragment()。一個ListFragment包含一個ListView來顯示這些項目,而這個ListView需要一個Adapter來拉取要顯示的數據。既然你傳遞了一個全新的ListFragment而沒有設置Adapter並傳遞數據來顯示,那麼Fragment沒有任何東西可以顯示。所以,你可以做這樣的事情:

ListFragment fragment = new ListFragment(); 
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1); 
adapter.addAll(Arrays.asList(new String[]{"Item one", "Item two", "Item 3"})); 
fragment.setListAdapter(adapter); 

getSupportFragmentManager() 
     .beginTransaction() 
     .add(R.id.fragmentContainer, fragment) 
     .commit(); 

注意,設置適配器足以隱藏紡紗圖標,並正確顯示ListFragment(有或無數據)

相關問題