
当我打开抽屉时,点击一个片段出现的项目.我使用以下代码从一个片段移动到另一个片段:
Fragment fragment = null;fragment = new galleryFragment(selectetdMainMenu.getcategoryID()); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.addToBackStack("menuFrag"); ft.add(R.ID.frame_container,fragment,"menuFrag"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); 以这种方式,我可以从一个片段到另一个片段,但是我没有在后面的按钮按下来到前一个片段.我设法提出了这个代码来处理DraA被初始化的MainActivity中的后退:
@OverrIDepublic boolean onKeyDown(int keyCode,KeyEvent event) { super.onKeyDown(keyCode,event); if (keyCode == KeyEvent.KEYCODE_BACK) { Fragment fragment_byTag = fragmentManager.findFragmentByTag("menuFrag"); Fragment menuFragment_by_tag = fragmentManager.findFragmentByTag("galleryFrag"); Fragment commentsFrag_by_tag = fragmentManager.findFragmentByTag("commentsFrag"); Fragment dealDetail = fragmentManager.findFragmentByTag("promoFrag"); if(commentsFrag_by_tag != null){ if (commentsFrag_by_tag.isVisible()) { Log.e("comments back "," clicked"); //menuDetailsFrag.onBackpressed(); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().remove(commentsFrag_by_tag).commit(); fragmentManager.beginTransaction().show(menuFragment_by_tag).commit(); } }else if(menuFragment_by_tag.isVisible()){ Log.e("menu back "," clicked"); menuDetailsFrag.onBackpressed(); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().remove(menuFragment_by_tag).commit(); fragmentManager.beginTransaction().show(fragment_byTag).commit(); } } return false;} 有时这样做有效,但大部分时间都失败了.如果一个更好的导航方式可以显示,我将非常感激.
解决方法 我通常将onKeyListener设置为onResume中的VIEw.从我学到的,你必须注意在VIEw上设置setFocusableIntouchMode()和requestFocus.这是我为此目的使用的示例:
@OverrIDepublic voID onResume() { super.onResume(); getVIEw().setFocusableIntouchMode(true); getVIEw().requestFocus(); getVIEw().setonKeyListener(new VIEw.OnKeyListener() { @OverrIDe public boolean onKey(VIEw v,int keyCode,KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){ // handle back button return true; } return false; } });} 总结 以上是内存溢出为你收集整理的在Android中使用片段时,请重新按下全部内容,希望文章能够帮你解决在Android中使用片段时,请重新按下所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)