Search code examples
android-jetpack-composecustomdialog

How to load jetpack compose from java activity


How to load jetpack compose from java activity?

I have java activity:

@Override
    public void onCreate(Bundle savedInstanceState) {

but on the button click I want to open @Composable function.

I'm calling it from java via

fun setContent(activity: AppCompatActivity){
        activity.setContent {
                CustomDialog() // contains Dialog
        }
    }

But this composable function destroy my previous view.

How can I open this custom dialog on the previous view?


Solution

  • found only such solution:

    class JetPackDialog() : DialogFragment() {
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View {
            return ComposeView(requireContext()).apply {
                setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
                setContent {
                    JetPackDialogView()
                    }
                }
            }
    }