1

我有一个4片段(MyNavigationBarMaster,MyNavigationBarDetails,Master e Details)的平板电脑应用程序。当隐藏键盘时,片段事务的自定义动画消失

I'use的片段交易,并自定义动画(IPHON式)如下:

FragmentTransaction mfragmentTransaction = getFragmentManager().beginTransaction(); 
mfragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_out_right, R.anim.slide_in_right); 
mfragmentTransaction.replace(R.id.MenuMFragment, new PeopleMFragment()); 
mfragmentTransaction.addToBackStack(null).commit(); 

这个没有问题,但是当我试图用这个代码PeopleMFragment()编程隐藏键盘:

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(getView().getWindowToken(), 0); 
} 

片段事务的动画无法正常工作,但键盘已隐藏且片段已正确连接。

为什么?问题是有一个单一的线程键盘和XML动画? 别人有同样的问题?在此先感谢

回答

1

试试看。 (我试过htc的愿望)

public void nextFragment(){ 

    //close keyboard 
    InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); 

    //remove focus, to remove any "auto-suggestions" views from the text field 
    getActivity().getCurrentFocus().clearFocus(); 

    //change fragment 
    Fragment2 newFragment = new Fragment2(); 
    FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
    transaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_right); 
    transaction.replace(R.id.fragmentContainer, newFragment); 
    transaction.addToBackStack(null); 
    transaction.commit(); 

}//nextFragment 
相关问题