Android 风格微调器

2023-12-28

我正在努力让我的 Android 应用程序变得更时尚,并取得了一些进展,但旋转下拉菜单给我带来了麻烦。我有一个屏幕截图来向您展示问题:

我想要的是背景中的白色框是透明的,就像在后屏幕上与下拉菜单之外的屏幕其余部分一样的灰色覆盖层中。

如果我没记错的话,Android 4.0,API 15。

根据要求,这是我到目前为止的做法。这些是我认为相关的片段,但我可能错过了一些东西。

这是微调器的 xml:

<Spinner
    android:id="@+id/edit_countrySpinner"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:entries="@array/edit_countryArray"
    android:gravity="center"
    android:prompt="@string/country_prompt" />

在我的values/style.xml 中。如果我在此处更改背景颜色,对话框中的背景会发生变化,但所有其余背景也会发生变化。我还没弄清楚如何更改下拉对话框中的背景。

<style name="appcin" parent="@android:style/Theme.NoTitleBar.Fullscreen">
    <item name="android:spinnerStyle">@style/spinnerStyle</item>
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item> -->
    <item name="android:background">#FFFFFF</item>
</style>
<style name="spinnerStyle">
    <item name="android:background">@drawable/pink_white_dropdown</item>
    <item name="android:clickable">true</item>
</style>
<style name="SpinnerItem">
    <item name="android:textColor">#993399</item>
    <item name="android:background">@drawable/pink_white_dropdown</item>
    <item name="android:maxHeight">10dip</item>
</style>
<style name="SpinnerDropDownItem">
    <item name="android:textColor">#993399</item>
    <item name="android:background">#FFFFFF</item>
</style>

我尝试将其添加到应用程序主题中,但它们都没有任何区别,背景仍然是白色的。

<...theme....>
   <item name="android:dropDownListViewStyle">@style/DropDownStyle</item>
   <item name="android:dropDownSpinnerStyle">@style/DropDownStyle</item>
   <item name="android:dropDownSelector">@style/DropDownStyle</item>
</... theme ...>
<style name="DropDownStyle">
    <item name="android:background">#FFF000</item>
    <item name="android:popupBackground">#FFF000</item>
    <item name="android:cacheColorHint">#FFF000</item>
</style>

在drawable/pink_white_dropdown中,只为所有情况显示相同的图像。 Pink_white_arrow 是我制作的 9patch 图像。有很多指导,这是我在 google 上 30sec 找到的一个 http://www.android10.org/index.php/articlesother/279-draw-9-patch-tutorial.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_window_focused="false" android:state_enabled="true"
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_window_focused="false" android:state_enabled="false"
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_pressed="true" 
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_pressed="false" 
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_focused="true" android:state_enabled="true" 
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_enabled="true" 
      android:drawable="@drawable/pink_white_arrow"/>
  <item android:state_focused="true" 
      android:drawable="@drawable/pink_white_arrow"/>
  <item 
      android:drawable="@drawable/pink_white_arrow"/>
</selector>

在这些文件的某个地方,我认为有些东西应该变得透明,但我不知道在哪里。


去除SpinnerStyle背景属性。

删除这个:

<style name="spinnerStyle">
    <item name="android:background">@drawable/whitish_rectangle</item>
</style>

这就是绘制背景白色矩形的原因。

基于您问题中的代码,以下是有关如何设置 Spinner 样式的基本示例:

The styles.xml文件设置样式SpinnerItem and SpinnerDropDownItem:

<resources>
    <style name="customtheme" parent="@android:style/Theme.Light">
        <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
        <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
    </style>
    <style name="SpinnerItem">
        <item name="android:textColor">#993399</item>
        <item name="android:background">@drawable/my_rectangle</item>
    </style>
    <style name="SpinnerDropDownItem">
        <item name="android:textColor">#993399</item>
        <item name="android:background">@drawable/my_rectangle</item>
    </style>
</resources>

为了进行测试,我创建了一个颜色鲜艳的可绘制形状,称为my_rectangle.xml。将其替换为您自己的绘图:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#ff0000" />
    <stroke
        android:width="1dp"
        android:color="#888888" />
</shape>

Add the Spinner to the Activity's layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:padding="40dip">
    <Spinner
        android:id="@+id/edit_countrySpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/location_names"/>
</LinearLayout>

这会产生:

背景中没有白色方块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 风格微调器 的相关文章

  • 我用 MediaRecorder 录制的文件无法播放

    我正在使用 MediaRecoder 录制声音 但录制完成后无法播放 我尝试使用Google Play Music ES Media Player 甚至将其上传到电脑并尝试使用Winamp打开它 没什么玩的了 AUDIO RECORDER
  • Android 动画闪烁

    我一直在搜索关于这个主题的尽可能多的线程 我可以在处理动画监听器时在 Android 2 2 中出现的闪烁中找到这些线程 但我无法完全解决我的问题 我得到的是一个 LinearLayout 弹出框 用户触摸它可以向下移动大约 100 像素
  • 如何解决这个 java.nio.BufferOverflowException 错误?

    当我尝试使用 ADT 在 Eclipse 中编译代码时 它向我显示了此错误 2013 12 10 17 55 51 Android SDK Warning when loading the SDK Warning Ignoring buil
  • EditText - 在键入时更改文本

    我需要在输入时替换 EditText 内的文本 示例 如果用户按下 A 它将被存储到缓冲区中 并在 EditText 上显示 D 看起来像是按下了 D 现在我可以读取按下的字符 但无法显示 et 中的任何字符以避免 stackoverflo
  • 使用 noHistory="true" 和/或 showOnLockScreen="true" 向 Activity 请求 Android M 权限

    我正在开发一个视频通话应用程序 并且有一个 来电 屏幕 当有人打电话给用户时 它会提醒用户 此屏幕是由传入 GCM 触发的活动 并且在清单中设置了 noHistory true 和 showOnLockScreen true 以便用户无需解
  • Android 两个日期之间的差异

    我有两个约会 例如 String date 1 yyyyMMddHHmmss String date 2 yyyyMMddHHmmss 我想打印差异 例如 2d 3h 45m 我怎样才能做到这一点 谢谢 DateTimeUtils obj
  • Paypal 支付页面布局在 webview android 中损坏

    我在某些 Android 设备上遇到一个奇怪的问题 我正在 webview 上打开 PayPal 支付页面 但它的布局在某些设备上被破坏 请任何人有任何想法 请提出建议 我被困住了 该截图设备的浏览器为chrome版本34 0 1847 1
  • 索尼 SmartWatch 2 定制表盘自固件更新后损坏

    我知道这将是这个的重复 gt SW2 更新后如何修复 Sony SmartWatch 2 上的自定义表盘时间 https stackoverflow com questions 27536415 how to fix custom watc
  • 更改图库中的边框样式

    我正在服用this http www androidpeople com android gallery imageview example 教程 正如你所看到的this http www androidpeople com wp cont
  • 让每个观察者仅在订阅/观察时接收*新的LiveData

    每当你打电话时 observe 在 LiveData 上 观察者接收该 LiveData 的最后一个值 这在某些情况下可能有用 但对我来说没有用 每当我打电话 observe 我希望观察者只接收未来的 LiveData 更改 而不是它在以下
  • RecyclerView 未按预期滚动

    我有一个项目 我使用水平回收器视图 并且我想将一个元素居中 我的实现有效 但并非在所有情况下都可以检查此 GIF 正如您可能注意到的 如果我从左边来 它会正确滚动 如果我从右边来 它会过度滚动很多 我不知道如何停止也不知道如何解决这个问题
  • Android 应用程序阿拉伯语支持

    我已经按照developer android官方网站上的教程Hello L10进行操作 但没有任何关于阿拉伯语的内容 Android 应用程序要使用阿拉伯语需要执行哪些步骤 例如 用户可以使用组合框或单选按钮来选择英语或阿拉伯语 我已经这样
  • React Native 图像选择器图像上传在 iOS 上不起作用

    我在通过 fetch 和 react native image picker 将图像上传到 Multer 和 Express 后端时遇到问题 下面是我的 React Native 代码 try const data new FormData
  • listItems之间的黑线,如何删除?

    我的列表项之间有一些水平黑线 如何删除它们 我的图形没有一部分 谢谢 listview setDivider null listview setDividerHeight 0 或在 XML 中
  • Apache POI 的 ProGuard 设置

    我正在构建一个使用 Apache POI 库的应用程序 当我调试应用程序 在不运行 Proguard 的情况下编译它 时 一切都运行良好 但是在导出 APK 后 当我运行应用程序并打开 Excel 文件时 出现以下异常 RuntimeExc
  • Maven:如何获取捆绑在包中的 .so 库

    我有一个带有 jar 和 so 文件的第三方库 我配置了 pom xml 如下
  • 还有其他地方可以获得 google-services.json 吗?

    我尝试单击GET A CONFIGURATION FILE链接自the docs https developers google com identity sign in android start integrating get conf
  • 有没有在android中使用roboguice和fragment的简单例子?

    我在寻找使用 Fragments RoboGuice 的工作示例时遇到问题 当您尝试使用 Android 片段事务管理器添加 删除片段时会出现此问题 一旦您告诉片段从 RoboFragment 继承 事务管理器就不再认为该类是片段 因为它扩
  • 使用 greenDao 动态查询

    我需要验证一些条件来创建完整的查询 QueryBuilder qb getMyObjDao queryBuilder if 某些条件 qb where MyObjDao Properties Prop1 eq someValue elseq
  • Android Mediaplayer:下载媒体文件的 setDataSource 问题

    我有一个可以录制和播放音频文件的应用程序 一些音频文件是使用 httpclient 使用简单的标准 http 下载来下载的 很长一段时间以来 它就像一种魅力 现在我突然无法播放我下载的文件 该堆栈失败 我将文件存储在 SDCard 上 并且

随机推荐

  • 字符串内的 C# Razor 语法

    这是我遇到问题的代码 int i 1 foreach var item in Model ul class droptrue i 如何在 id sortablei 中使用 i 我尝试过 i 或 i 但在 i 之前似乎没有空格 它不起作用 我
  • 使用超过 1 个深度级别的地图从 csv 转换为 json

    我有一个 csv 文件 其内容如下 Fruit Mango Fruit Apple Car Audi Apple Red Color Brown 我想最终将其转换为如下格式 hierarchy label Fruit children la
  • 等待 .net 中的远程进程完成

    我们都知道并且喜欢 Process WaitForExit 给定远程计算机上进程的 pid 由 WMI psexec 创建 我如何等待它结束 对我来说 Process GetProcessByID 只是不起作用 它声称无法连接到机器 这有效
  • Reactjs-在渲染方法中引用状态子元素时应对未定义的错误

    我在以特定方式使用 React 时经常遇到问题 我有一个组件层次结构 应用程序状态位于公共所有者最上面的组件中 我在 getInitialState 中使用空对象或数组设置初始状态 我通过 ajax 调用该组件的 componentDidM
  • Bing 地图 Ajax API - 从地址获取位置

    我正在使用 Microsoft Maps API AJAX 控件 v 7 我想显示地址的 pin 当我使用时 var loc new Microsoft Maps Location 47 592 122 332 var pOptions i
  • 为什么 width:auto 的行为与 height:auto 不同?

    我不明白auto价值 如果应用于height它会影响孩子的身高 但如果应用于width它将占据父级的宽度 没有 MDN 帖子auto值本身 并且 Google 会产生 100 VS auto 命中 而不是 width auto VS hei
  • 如何在 Maven 原型中提供自定义逻辑?

    我对创建 Maven 原型很感兴趣 并且我认为我已经掌握了大部分基础知识 然而 我坚持的一件事是有时我想使用自定义逻辑来填充模板 例如 如果有人生成我的原型并将artifactId指定为hello world 我想生成一个名为HelloWo
  • 在不同项目中对 WebAPI 和 Asp.Net Core 使用同一个身份

    我有一个包含 2 个点网核心项目的解决方案 Web API 网络应用程序 MVC Web 应用程序是 Web API 使用者 我的网络应用程序控制器将使用httpclient为了获取数据 我使用 razor 作为客户端 没有 Angular
  • 使用 Composer create-project 拉取最新提交

    我想用composer create project始终提取我正在使用的开发版本的最新提交 我注意到一个类似的问题 https stackoverflow com questions 36600849 composer create pro
  • JavaFX fxml - 如何将 Spring DI 与嵌套自定义控件一起使用?

    我已经阅读了许多有关将 Spring DI 与 JavaFx 集成的教程 但我遇到了简单示例无法涵盖的障碍 而且我无法弄清楚 我希望视图层和表示层之间完全分离 我想使用 fxml 来定义可组合视图 并使用 Spring 将它们连接在一起 这
  • 当日期选择器关闭时调用函数,当我仅单击日期选择器外部时

    是否可以将日期选择器设置为仅在我单击日期选择器外部时关闭 关闭日历时 如果选择了日期 alertDate函数被调用 代码在这里 https stackblitz com edit react o8dm7y https stackblitz
  • 在函数外部访问函数变量?

    我是初学者 这是我正在上的课程 我知道关于return 但它不允许我在这段代码中做我想做的事情 这是包含变量的函数 def disp cookies This stuff is just for a print display inx 0
  • 在运行时动态修改符号表(C语言)

    是否可以在C运行时动态修改符号表 Linux上的elf格式 我的最终目标如下 在某些函数里面说foo 我想覆盖malloc函数到我的自定义处理程序my malloc 但在外面foo any malloc仍应像 glibc 中那样调用 mal
  • 系统时间与 apache 时间戳不同--?

    我在开发服务器上 当我在 php 中执行此操作时 echo date r time 回复 2010 年 6 月 1 日 星期二 18 10 32 0400 但是 我的计算机时间是 17 10 32 即时时间为 GMT 5 我在哪里配置 ap
  • 是否可以仅更改文本阴影的颜色?

    我有 9 个不同颜色的按钮 红色 橙色 黄色 绿色 蓝色 紫色 粉色 灰白色和石板色 我想知道是否可以仅操纵和更改按钮的颜色text shadow这些按钮的 CSS 属性 同时保持其他值相同 例如 我有两个不同的班级 一个用于 11px 字
  • pandas 返回未命名的列

    以下是我在 Excel 工作表中的数据示例 A B C 1 2 3 4 5 6 我正在尝试使用以下代码获取列名称 p1 list df1t columns values 输出是这样的 A B C Unnamed 3 unnamed 4 un
  • 如何打印包含值的列

    假设我有一个包含以下内容的数据文件 1 2 3 4 5 67 88 12 32 22 9 99 34 59 86 17 0 78 0 77 11 0 0 0 43 我想要一个在每一列中搜索数字 0 的代码 如果找到数字 0 代码将在单独的文
  • 如何使 XmlnsDefinition 在本地程序集上工作?

    我开始使用 XmlnsDefinition 属性将一些 CLR 命名空间绑定到单个 xmlns 中 以便在 XAML 中使用 不幸的是 这似乎只在使用外部程序集时才有效 如果我在与我从 XmlnsDefinition 引用的命名空间中的类型
  • 似乎无法使用 Expo 的 Font.loadAsync 加载自定义字体

    我正在将 React Native 与 Expo 结合使用 除了自定义字体的问题之外 一切都很顺利 我有我的字体Lobster Regular ttf在 assets fonts 中 我一直在尝试加载它 如官方文档中所示 component
  • Android 风格微调器

    我正在努力让我的 Android 应用程序变得更时尚 并取得了一些进展 但旋转下拉菜单给我带来了麻烦 我有一个屏幕截图来向您展示问题 我想要的是背景中的白色框是透明的 就像在后屏幕上与下拉菜单之外的屏幕其余部分一样的灰色覆盖层中 如果我没记