Android 如何设置导航抽屉开启器和关闭器?
我用片段实现了一个导航抽屉,但我似乎把它搞砸了。当前,每当抽屉关闭而未选择listitem时,它都会重新加载一个片段 我保存片段的MainDrawer类是: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
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似乎不起作用: