片段没有显示在所选的导航栏上?

时间:2017-04-04 12:29:04

标签: java android android-fragments

我无法处理我的片段,当选择R.id.nav_gallery时,选择导航栏上的项目时,它就会显示出来。我认为onNavigationItemSelected(MenuItem项目)上有一个问题,但我无法对其进行本地化。有什么想法吗?

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 个答案:

答案 0 :(得分: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;
}
}