2017-04-04 2 views
-2

Ich kann mein Fragment nicht bearbeiten, es wird einfach nicht angezeigt, wenn das Element in der Navigationsleiste ausgewählt ist, wie es bei der Auswahl von R.id.nav_gallery der Fall sein sollte. Ich denke, es gibt ein Problem irgendwo auf onNavigationItemSelected (MenuItem Element), aber ich konnte es nicht lokalisieren. Irgendwelche Gedanken?Fragment wird nicht in der ausgewählten Navigationsleiste angezeigt?

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    (...) 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 
} 





public static class PlaceholderFragment extends Fragment{ 

    private static final String ARG_SECTION_NUMBER = "section_number"; 

    public PlaceholderFragment() { 
    } 

    public static PlaceholderFragment newInstance() { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, 0); 
     fragment.setArguments(args); 
     Log.d("frag", "6"); 
     return fragment; 
    } 


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

     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
    } 
} 

@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    FragmentManager fragmentManager = getFragmentManager(); 
    PlaceholderFragment fragment; 

    if (id == R.id.nav_camera) { 
     // Handle the camera action 
    } else if (id == R.id.nav_gallery) { 
     fragment = new PlaceholderFragment(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.container, fragment) 
       .commit(); 
     PlaceholderFragment.newInstance(); 
    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 
} 
+1

Nach dem Fragment zu ersetzen, warum schaffen Sie newInstance? –

Antwort

0
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    FragmentManager fragmentManager = getFragmentManager(); 
    PlaceholderFragment fragment; 

    if (id == R.id.nav_camera) { 
     // Handle the camera action 
    } else if (id == R.id.nav_gallery) { 
     fragment = new PlaceholderFragment(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.container, fragment) 
       .commit(); 
    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 
} 
Verwandte Themen