【发布时间】:2021-01-22 11:10:17
【问题描述】:
我正在尝试在对话框模式下设置自定义微调器的样式,但无论我做什么我都无法摆脱白色背景。
这是我的旋转器。
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/mySpinner"
android:layout_width="match_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight"
android:layout_margin="16dp"
android:background="@drawable/background_dropdown"
android:spinnerMode="dialog"
/>
我的微调器中的项目都有一个透明的背景,因为我不想要每个项目的背景,而是整个对话框的背景。 我发现我可以通过在我的主题中覆盖 android:listViewStyle 来为所有项目设置背景:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:listViewStyle">@style/myListView</item>
</style>
<style name="myListView" parent="@android:style/Widget.ListView">
<item name="android:background">@drawable/background_dropdown</item>
</style>
但即使在那之后,名单背后还有另一个背景。我猜它来自微调器使用的对话框,所以我将 android:alertDialogStyle 添加到我的主题中。
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:listViewStyle">@style/myListView</item>
<item name="android:alertDialogStyle">@style/myDialog</item>
</style>
<style name="myDialog">
<item name="android:background">@android:color/transparent</item>
</style>
但这并没有什么不同。如何去除角落里的白色背景?
【问题讨论】:
-
能否添加对话框创建和显示的代码
-
我没有创建任何对话框,我假设有一个Android创建的对话框,因为微调器模式设置为“对话框”
-
这能回答你的问题吗? stackoverflow.com/a/51503667/9701793
-
不,它没有。第一个答案建议删除 spinnerMode = "dialog",但我需要它作为对话框。第二个什么也没做。
标签: android xamarin xamarin.android android-spinner