Android 如何设置导航抽屉开启器和关闭器?

Android 如何设置导航抽屉开启器和关闭器?,android,android-fragments,android-navigation,Android,Android Fragments,Android Navigation,我用片段实现了一个导航抽屉,但我似乎把它搞砸了。当前,每当抽屉关闭而未选择listitem时,它都会重新加载一个片段 我保存片段的MainDrawer类是: public class MainDraw extends FragmentActivity { final String[] data ={"Statistics","Discover","three"}; final String[] fragments ={ "com.beerportfolio

我用片段实现了一个导航抽屉,但我似乎把它搞砸了。当前,每当抽屉关闭而未选择listitem时,它都会重新加载一个片段

我保存片段的MainDrawer类是:

public class MainDraw extends FragmentActivity {
    final String[] data ={"Statistics","Discover","three"};
    final String[] fragments ={
            "com.beerportfolio.beerportfoliopro.StatisticsPage",
            "com.beerportfolio.beerportfoliopro.Discover",
            "com.beerportfolio.beerportfoliopro.FragmentThree"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);


        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, data);

        final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);


        final ListView navList = (ListView) findViewById(R.id.drawer);
        navList.setAdapter(adapter);

        navList.setOnItemClickListener(new AdapterView.OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){
                drawer.setDrawerListener( new DrawerLayout.SimpleDrawerListener(){



                    @Override
                    public void onDrawerClosed(View drawerView){
                        super.onDrawerClosed(drawerView);
                        FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
                        tx.replace(R.id.main, Fragment.instantiate(MainDraw.this, fragments[pos]));
                        tx.commit();


                    }

                });

                drawer.closeDrawer(navList);

            }
        });

        FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
        tx.replace(R.id.main,Fragment.instantiate(MainDraw.this, fragments[0]));
        tx.commit();

    }


}
public类MainDraw扩展了碎片活动{
最终字符串[]数据={“统计”、“发现”、“三”};
最终字符串[]片段={
“com.beerportfolio.beerportfolio.StatisticsPage”,
“com.beerportfolio.beerportfoliopro.Discover”,
“com.beerportfolio.beerportfoliopro.FragmentThree”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
ArrayAdapter=新的ArrayAdapter(getActionBar().getThemedContext(),android.R.layout.simple_列表_项_1,数据);
最终抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
最终ListView导航列表=(ListView)findViewById(R.id.drawer);
设置适配器(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父项、视图、最终整数位置、长id){
drawer.setDrawerListener(新的DrawerLayout.SimpleDrawerListener(){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
super.onDrawerClosed(抽屉视图);
FragmentTransaction tx=getSupportFragmentManager().beginTransaction();
tx.replace(R.id.main,Fragment.instantiate(MainDraw.this,fragments[pos]);
tx.commit();
}
});
抽屉。封闭抽屉(导航列表);
}
});
FragmentTransaction tx=getSupportFragmentManager().beginTransaction();
tx.replace(R.id.main,Fragment.instantiate(MainDraw.this,fragments[0]);
tx.commit();
}
}

按照链接,您可能会发现代码中的问题所在


太棒了,结果我的代码有点变了。看起来不错,但导航抽屉加载新片段的onclick似乎不起作用: