【问题标题】:Remove spinner dialog background删除微调器对话框背景
【发布时间】: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


【解决方案1】:

您可以使用卡片视图解决此问题。 这是代码:

<androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        app:cardBackgroundColor="@color/colorWhite"
        app:cardCornerRadius="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="20dp">

            <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"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintTop_toTopOf="parent"/>

        </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.cardview.widget.CardView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多