diff --git a/Demo/app/build.gradle.kts b/Demo/app/build.gradle.kts
index f68f14a..8707008 100644
--- a/Demo/app/build.gradle.kts
+++ b/Demo/app/build.gradle.kts
@@ -72,6 +72,7 @@ dependencies {
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.fragment)
+ implementation(libs.google.material)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
diff --git a/Demo/app/src/main/res/values/themes.xml b/Demo/app/src/main/res/values/themes.xml
index 1489a8c..4e08801 100644
--- a/Demo/app/src/main/res/values/themes.xml
+++ b/Demo/app/src/main/res/values/themes.xml
@@ -1,5 +1,5 @@
-
-
\ No newline at end of file
+
+
diff --git a/Demo/gradle/libs.versions.toml b/Demo/gradle/libs.versions.toml
index 00c5cec..dd9e28b 100644
--- a/Demo/gradle/libs.versions.toml
+++ b/Demo/gradle/libs.versions.toml
@@ -9,6 +9,7 @@ lifecycleRuntimeKtx = "2.6.1"
activityCompose = "1.8.0"
composeBom = "2024.09.00"
fragment = "1.8.6"
+material = "1.14.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -18,6 +19,7 @@ androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-co
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-fragment = { group = "androidx.fragment", name = "fragment", version.ref = "fragment" }
+google-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
diff --git a/Sources/AndroidSwiftUI/AndroidButton.swift b/Sources/AndroidSwiftUI/AndroidButton.swift
index 2f858d1..2d66963 100644
--- a/Sources/AndroidSwiftUI/AndroidButton.swift
+++ b/Sources/AndroidSwiftUI/AndroidButton.swift
@@ -106,7 +106,8 @@ extension AndroidButton: AndroidViewRepresentable {
extension AndroidButton {
func createView(context: AndroidContent.Context) -> AndroidWidget.Button {
- let view = AndroidWidget.Button(context)
+ // Material Design button; requires a `Theme.Material3` derived application theme
+ let view = MaterialButton(context)
updateView(view)
// set on click listener
let listener = ViewOnClickListener(action: action)
diff --git a/Sources/AndroidSwiftUI/AndroidDivider.swift b/Sources/AndroidSwiftUI/AndroidDivider.swift
index 34bdcbf..0637d37 100644
--- a/Sources/AndroidSwiftUI/AndroidDivider.swift
+++ b/Sources/AndroidSwiftUI/AndroidDivider.swift
@@ -10,11 +10,11 @@ import AndroidKit
extension Divider: AnyAndroidView {
public func createAndroidView(_ context: AndroidContent.Context) -> AndroidView.View {
- let view = AndroidView.View(context)
- // hairline separator
+ // Material Design divider, colored with the theme's outline color
+ let view = MaterialDivider(context)
let matchParent = try! JavaClass().MATCH_PARENT
- view.setLayoutParams(ViewGroup.LayoutParams(matchParent, 2))
- view.setBackgroundColor(0x33_00_00_00) // ARGB translucent black
+ let wrapContent = try! JavaClass().WRAP_CONTENT
+ view.setLayoutParams(ViewGroup.LayoutParams(matchParent, wrapContent))
return view
}