diff --git a/res/layout/preference_compose.xml b/res/layout/preference_compose.xml
index 14cb2d79b6a..992b8261646 100644
--- a/res/layout/preference_compose.xml
+++ b/res/layout/preference_compose.xml
@@ -15,7 +15,38 @@
~ limitations under the License.
-->
-
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:background="?android:attr/activatedBackgroundIndicator"
+ android:clipToPadding="false">
+
+
+
+
+
+
+
+
diff --git a/src/com/android/settings/spa/preference/ComposePreference.kt b/src/com/android/settings/spa/preference/ComposePreference.kt
index 81d2b4bceb9..c2d3884972a 100644
--- a/src/com/android/settings/spa/preference/ComposePreference.kt
+++ b/src/com/android/settings/spa/preference/ComposePreference.kt
@@ -18,6 +18,8 @@ package com.android.settings.spa.preference
import android.content.Context
import android.util.AttributeSet
+import android.view.View
+import android.widget.ImageView
import androidx.annotation.VisibleForTesting
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.ComposeView
@@ -68,7 +70,18 @@ constructor(
holder.isDividerAllowedAbove = false
holder.isDividerAllowedBelow = false
- (holder.itemView as ComposeView).apply {
+ val iconView = holder.findViewById(android.R.id.icon) as? ImageView
+ iconView?.let {
+ if (icon != null) {
+ it.visibility = View.VISIBLE
+ it.setImageDrawable(icon)
+ } else {
+ it.visibility = View.GONE
+ }
+ }
+
+ val composeView = holder.findViewById(R.id.compose_view) as? ComposeView
+ composeView?.apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
SettingsTheme {