TDialog icon indicating copy to clipboard operation
TDialog copied to clipboard

android.util.AndroidRuntimeException: requestFeature() must be called before adding content

Open michaelyiwei opened this issue 3 years ago • 5 comments

调用dialog后报了这个错误。 android.util.AndroidRuntimeException: requestFeature() must be called before adding content at com.android.internal.policy.PhoneWindow.requestFeature(PhoneWindow.java:366) at android.app.Dialog.requestWindowFeature(Dialog.java:1209) at com.timmy.tdialog.base.BaseDialogFragment.onViewCreated(BaseDialogFragment.java:59) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2959) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:571) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:276) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1632) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:455) at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2389) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2145) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2083) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1985) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7560) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

michaelyiwei avatar Feb 24 '21 02:02 michaelyiwei

BaseDialogFragment.java实现的这个方法, 存在上述问题

@Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //去除Dialog默认头部
        Dialog dialog = getDialog();
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setCanceledOnTouchOutside(isCancelableOutside());
        if (dialog.getWindow() != null && getDialogAnimationRes() > 0) {
            dialog.getWindow().setWindowAnimations(getDialogAnimationRes());
        }
        if (getOnKeyListener() !=null){
            dialog.setOnKeyListener(getOnKeyListener());
        }
    }

canney-chen avatar Mar 31 '21 02:03 canney-chen

apps模块中 implementation 'androidx.appcompat:appcompat:1.3.0-beta01' 使用 > 1.0的版本导致

canney-chen avatar Mar 31 '21 03:03 canney-chen

apps模块中 implementation 'androidx.appcompat:appcompat:1.3.0-beta01' 使用 > 1.0的版本导致

有解决方案吗?

SMAXLYB avatar Jul 15 '21 03:07 SMAXLYB

apps模块中 implementation 'androidx.appcompat:appcompat:1.3.0-beta01' 使用 > 1.0的版本导致

有解决方案吗?

把你 app 模块中 appcompat 引用版本降低就好了 implementation 'androidx.appcompat:appcompat:1.0.0'

hanachooihca avatar Jul 23 '21 03:07 hanachooihca

apps模块中 implementation 'androidx.appcompat:appcompat:1.3.0-beta01' 使用 > 1.0的版本导致

有解决方案吗?

下载代码自己更改。

canney-chen avatar Aug 02 '21 01:08 canney-chen