In my activity class whose layout set with xml, i want to show a dialog. ın this dialog i want to use Jetpack Compsose. Is this possible ? My codes are as the following and i get the following crash :
java.lang.IllegalStateException: ViewTreeLifecycleOwner not found from android.widget.RelativeLayout{910e78c V.E...... ......I. 0,0-0,0}
Here is my activity class :
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<android.widget.Button>(R.id.buttonPuppyInfo)
button.text = "Open dialog"
val dialog = Dialog(this@MainActivity)
dialog.setContentView(R.layout.custom_dialog);
val composeView = dialog.findViewById<ComposeView>(R.id.composeView)
composeView.setContent {
Button(
onClick = {
// Change the state to close the dialog
//setShowDialog(false)
},
) {
Text("Superrr")
}
}
button.setOnClickListener {
dialog.show();
}
}
}
Below is my custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:text="hello world!"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<androidx.compose.ui.platform.ComposeView
android:id="@+id/composeView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_below="@id/textView">
</androidx.compose.ui.platform.ComposeView>
</RelativeLayout>
Below is my dependencies const val composeVersion = "1.0.2"
implementation("androidx.compose.ui:ui:${Versions.composeVersion}")
implementation("androidx.compose.ui:ui-tooling:${Versions.composeVersion}")
implementation("androidx.compose.material:material:${Versions.composeVersion}")
implementation("androidx.compose.material:material-icons-extended:${Versions.composeVersion}")
implementation("androidx.compose.runtime:runtime:${Versions.composeVersion}")
implementation("androidx.activity:activity-compose:1.3.1")
implementation("androidx.navigation:navigation-compose:2.4.0-alpha08")
implementation("org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlinVersion}")
implementation("androidx.core:core-ktx:1.6.0")
implementation("androidx.appcompat:appcompat:1.4.0-alpha03")
implementation("com.google.android.material:material:1.4.0")