反射修改原先逻辑

2023-04-21  本文已影响0人  Crassus
       Field file = WirelessUSGFragment.class.getDeclaredField("mBtnPreset"); // 通过反射获取mMessageView对象,这是类中的成员变量名
            file.setAccessible(true); //私有变量需要使用此方法
            backBtn = (ImageButton) file.get(this); // 获取textView实例,mBootMsgDialog为具体实例
            backBtn.setOnClickListener(mClickListener);
            backBtn.setBackgroundResource(R.mipmap.sound_back);

fragmentManagment 添加监听动作,执行了

 private FragmentManager.OnBackStackChangedListener backStackListener =  new FragmentManager.OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            String name = "";
            int position = getSupportFragmentManager().getBackStackEntryCount();
            if(position!=0){
                FragmentManager.BackStackEntry backEntry=getSupportFragmentManager().getBackStackEntryAt(position-1);
                name=backEntry.getName();
            }
//            if(name=="addFragment" && currentFragment == wirelessUSGFragment){
//                new Handler().postDelayed(() -> {
//                    updateSettingBtn();
//                },800);
//
//            }
        }
    };


  private void showFragment(Fragment fragment) {
        FragmentManager fm = getSupportFragmentManager();
//        fm.addOnBackStackChangedListener(backStackListener);
        if (currentFragment != fragment) {
            // 判断传入的fragment是不是当前的currentFragment
            FragmentTransaction transaction = fm.beginTransaction();
            if (currentFragment != null) {
                // 不是则隐藏
                transaction.hide(currentFragment);
            }
            // 然后将传入的fragment赋值给currentFragment
            currentFragment = fragment;

            // 判断传入的fragment是否已经被add()过
            if (!fragment.isAdded()) {
                transaction.add(R.id.fragment_stub, fragment).show(fragment).addToBackStack("addFragment").commit();
                // 立即执行完之后
                fm.executePendingTransactions();
            } else {
                transaction.show(fragment).commit();
            }
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读