首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android样式在API < 21中无法正常工作

是因为在Android 5.0(API level 21)之前,Android系统不支持某些新的样式属性和特性。这导致在旧版本的Android系统上,一些样式可能无法正确显示或产生不一致的效果。

为了解决这个问题,可以采取以下几种方法:

  1. 使用兼容性库:Android提供了一些兼容性库,如AppCompat库,可以在旧版本的Android系统上模拟新的样式属性和特性。通过引入兼容性库,并在代码中使用相应的兼容性类和方法,可以确保样式在API < 21的设备上正常工作。
  2. 使用条件语句:在代码中可以使用条件语句来检测当前运行的Android版本,然后根据版本选择不同的样式属性和特性。通过这种方式,可以在API < 21的设备上使用兼容的样式,而在API >= 21的设备上使用新的样式。示例代码如下:
代码语言:java
复制
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    // 使用旧版本的样式属性和特性
    // 例如:setBackgroundDrawable()方法替代setBackground()方法
} else {
    // 使用新版本的样式属性和特性
    // 例如:setBackground()方法
}
  1. 降级处理:如果在API < 21的设备上无法实现期望的样式效果,可以考虑在这些设备上降级处理,使用更简单的样式或者提供替代方案。例如,可以使用不同的布局文件或者图片资源来适配不同的Android版本。

总结起来,Android样式在API < 21中无法正常工作是由于旧版本的Android系统不支持某些新的样式属性和特性。为了解决这个问题,可以使用兼容性库、条件语句或者降级处理来确保样式在API < 21的设备上正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

vueIE下无法正常工作,Promise未定义?

用vue写了一个日历组件,Firefox、Edge、Chrome以及360等浏览器极速模式中运行一切正常,如图: 但在IE和360等浏览器的兼容模式下却显示了模板,看起来像乱码一样,如图: 按F12...左思右想,突然灵光一闪,ES5的函数声明中并不能为形参赋默认值,这种写法是ES6新增的,而IE是不兼容ES6的,那就把代码改一改,这里不再赋默认值,为了让方法可以正确执行而不报错,调用这个方法的地方都强制传参就好了...`es6-promise`项目[github地址](https://github.com/stefanpenner/es6-promise) 现在,这个组件终于可以IE上正常展示了!...最后,我们的项目是否需要兼容ES5需要您对您的用户有一个较为明确的认知,并不是所有项目都需要去做ES5兼容,毕竟因此会增加不少的工作量。...VUE: 1 / 1 vueIE下无法正常工作,Promise未定义?

4.2K20

移动web开发需要注意的二十点

HTML5可以实现一些HTML4中无法实现的丰富的WEB应用程序的体验,可以减少开发者很多的工作量,当然了你决定使用HTML5前,一定要对此非常熟悉,要知道HTML5的新标签的作用。...,有内发光效果还有高光效果,这样的按钮使用CSS3写是无法写出来的,当然圆角可以使用CSS3来写,但高光和内发光却无法使用CSS3编写,这个时候你不妨使用-webkit-border-image来定义这个按钮的样式...至少Apple webapp API已经说到了:我们为了让用户safari中正常的浏览网页,我们必须保证用户的设备处于任何一个方位时,safari都能够正常的显示网页内容(也就是自适应),所以我们禁止开发者阻止浏览器的...因为iOS中没有滚动条的概念,Android中通过这两个属性可以正常获取到滚动条的值,那么iOS中我们该如何获取滚动条的值呢?...19、如何解决android平台中页面无法自适应 虽然你的html和css都是完全自适应的,但有一天如果你发现你的页面android中显示的并不是自适应的时候,首先请你确认你的head标签中是否包含以下

1.9K20
  • WEBAPP开发技巧总结

    HTML4中无法实现的丰富的WEB应用程序 的体验,可以减少开发者很多的工作量,当然了你决定使用HTML5前,一定要对此非常熟悉,要知道HTML5的新标签的作用。...我们可以利用一句简单的javascript代码来实现这个效果 1 setTimeout(scrollTo,0,0,0); 请注意,这句代码必须放在window.onload里才能够正常工作,而且你的当前文档的内容高度必须是高于窗口的高度时...至少Apple webapp API已经说到了:我们为了让用户safari中正常的浏览网页,我们必须保证用户的设备处于任何一个方位 时,safari都能够正常的显示网页内容(也就是自适应),所以我们禁止开发者阻止浏览器的...因为iOS中没有滚动条的概念,Android中通过这两个属性可以正常获取到滚动条的值,那么iOS中我们该如何获 取滚动条的值呢?...19、如何解决android平台中页面无法自适应 虽然你的html和css都是完全自适应的,但有一天如果你发现你的页面android中显示的并不是自适应的时候,首先请你确认你的head标签中是否包含以下

    2K20

    了解与建设中国特色的 Android M&N

    这一点类似于 iOS 的权限控制,但 Android 并不是 ROM 直接托管的;而弊端,就是用户可能无法判断这个权限的作用而关闭这个权限,导致 App 无法正常工作。...另外提一点,Android 现在的安全等级已经非常高了,像指纹信息这些东西,都存储单独的安全芯片上,而且,新的指纹 API 让开发者也可以非常方便地去使用指纹,不管是从用户还是开发者的角度来说,使用...通知栏样式修改 通知栏的样式修改,总体来说,让 Notification 的使用更加方便了,同时也更加好看,Google 2016的 IO 大会上也着重讲了,大家可以参考 IO 大会上的内容,...Text Selection Android M 系统级别,提供了对文字选择的 API 拓展,以前的版本上,长按后,文字只提供剪贴、复制这些系统功能,而现在,系统为 App 提供了更多的访问接口...不过这总归也算是一件好事, Android N 上,系统提供了黑名单的 API,App 可以调用,了解被拉入黑名单的电话信息。

    50020

    APP消息推送方案调研

    消息样式:大文本样式、Inbox样式、消息按钮样式。通知提醒方式:通知栏消息固定会在通知栏显示,用户可感知的提醒方式还有状态栏图标、锁屏消息、熄屏图标、铃声、震动、呼吸灯等。...使用GCM推送服务的whatsapp即使后台程序和服务都关闭掉,也依然可以第一时间接收到新消息的推送(实测国内whatsapp也的确可以在后台关闭的情况下正常通过GCM接受实时消息)。...像 Line 的 Android 版本可以推送通知的 Popup 上直接回复, iOS 就需要越狱才能做到了。...IOS平台的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。...七种主流的Android消息推送方式通知标题:推送消息的标题,请尽量避免“test、测试、纯数字” 等无意义内容,否则可能会被厂商拦截而无法接收到通知消息。

    25510

    React Native0.50+开发指导

    的支持; API方面为TimePicker添加了打开方式的API,另外允许构建Android项目的时候指定applicationId; 组件方面,新添加了支持侧滑显示菜单的SwipeableFlatList...Android中设置View的背景SDK15及以下和以上和的API是不一样的,之前的RN版本中没有做差异判断,所以会导致低版本设置背景的Bug,0.50及以上版本底层实现上添加了ViewHelper...很久以来overflow样式Android默认为hidden而且无法更改。...Android的overflow:hidden还有另外一个问题:如果父容器有borderRadius圆角边框样式,那么即便开启了overflow:hidden也仍然无法把子视图超出圆角边框的部分裁切掉。...TimePicker是一个老的API了,通过TimePicker组件可以打开Android原生的时间选择对话框。

    1.8K40

    【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板 ( 2021年08月28日最新解决方案 )

    ; ( 这个版本作废 ) 现在 Flutter 版本 和 Android Studio 版本更新了 , 按照上述解决方案 , 无法解决问题 , 更新下解决方案 ; 一、 报错信息 ---- 创建 Flutter...首先查看一下 Android 的 compileSdkVersion 和 targetSdkVersion 版本号 30 ; Project 面板中 , 点击右键 , 弹出的菜单中 , 选择...选项 , 设置完毕的样式 , 然后点击 Apply 和 OK 按钮 ; 此时显示出 Logcat 按钮 ; 但是此处有出现新问题 , 弹出 Please configure Android SDK...提示 , 并且没有日志输出 ; 点击 configure 按钮 , 弹出如下界面 : 点击 Module SDK 下拉菜单 , 选择 Android API 30 ; 这个 30 是之前看的 Flutter..., 一切使用正常 ;

    2.6K30

    Visual Studio 2019 16.1 更新摘要

    Visual Studio 2019 版本 16.1 的摘要 IDE 默认情况下,Visual Studio IntelliCode 随包含 C#、XAML 或 C++ 的任何工作负载一起安装。...现已公开发布 Visual Studio IntelliCode,并且可以随任何支持 C#、C++、TypeScipt/JavaScript 或 XAML 的任意工作负载一起安装。...此版本中的 .NET 效率新增功能包括针对未导入类型的 IntelliSense 完成、切换单行注释/取消注释、将命名样式导出到 editorconfig,以及命名空间内/外部的首选 using 的新代码样式设置...Xamarin 默认 Xamarin Android 体验现在支持 API 28。 Xamarin.Forms 设计时属性的 XAML 建议。...[MSConnect 3142311]Visual Studio IDE 提示 E1449 但是代码能正常编译运行、 结果也对-> Visual Studio IDE 提示 E1449,但代码可以编译并正常运行

    5.7K40

    史上最优美的Android原生UI框架XUI使用指南

    组件丰富,提供了绝大多数我们开发者常用的功能组件。 使用简单,为方便快速开发,提高开发效率,对api进行了优化,提供一键式接入。 样式统一,框架提供了一系列统一的样式,使UI整体看上去美观和谐。...扩展性强,各组件提供了丰富的属性和样式API,可以通过设置不同的样式属性,构建不同风格的UI。 ---- 演示项目 通过查看演示Demo的实现,可以快速高效地掌握UI组件的使用。...必须) 必须设置应用的基础主题,否则组件将无法正常使用!...这里需要说明的是,XUI不同于其他开源组件库,他是一套统一的UI框架,有一套严格统一的属性样式标准,其中绝大多数组件和资源都使用了规范化的XUI样式主题属性,因此不使用XUITheme将无法正常使用XUI...而且同样是Android5.0(21)以下,如果你使用vector加载SVG图片的话,同样也会导致R文件找不到,因为Android5.0(21)以下系统是不支持加载SVG图片的。

    5.2K20

    React Native 0.50版本新功能简介

    本文主要从以下几个方面来对React Native0.50+进行讲解: 兼容性方面新增了对Android8.0、iPhone X的支持; API方面为TimePicker添加了打开方式的API,另外允许构建...之前是可以正常运行的,0.50上运行会报: Unhandled JS Exception: Error: The component cannot contain children....Android中设置View的背景SDK15及以下和以上和的API是不一样的,之前的RN版本中没有做差异判断,所以会导致低版本设置背景的Bug,0.50及以上版本底层实现上添加了ViewHelper...很久以来overflow样式Android默认为hidden而且无法更改。...Android的overflow:hidden还有另外一个问题:如果父容器有borderRadius圆角边框样式,那么即便开启了overflow:hidden也仍然无法把子视图超出圆角边框的部分裁切掉。

    2.3K60

    PAG 4.1 正式发布:新增支持微信小程序

    PAG 4.1 版本新增支持微信小程序,新增支持多个常用 AE 特性,如图层样式-渐变叠加、蒙版-羽化和不透明度、 亮度轨道遮罩/亮度轨道反转遮罩等。...AE 特性新增支持 · 图层样式-渐变叠加 · 蒙版-羽化和不透明度 · 亮度轨道遮罩/亮度轨道反转遮罩 · 文本路径选项:路径、反转路径、垂直于路径、强制对齐、首字边距、末字边距 API 接口更新...(2)小程序平台 WebGL 存在无法直接上传其它 Canvas 纹理的情况,绘制文字和 mask 的时候,需要通过 getImageData 获取纹理数据再上传到 WebGL,从而导致性能上有所损耗...部分 AE 新增特性展示 蒙版-羽化 图层样式-渐变叠加 亮度遮罩 总结 PAG 4.1 版本新增支持了微信小程序,实现了所有常用平台(iOS、Android、macOS、Windows、Linux...PAG 的未来发展离不开大家的参与,欢迎大家积极参与到需求建议、问题反馈和源码共建中来,帮助我们持续打造更加完善的动效工作流。

    1.3K20

    AndroidManifest.xml详解

    指定用户必须授予的系统权限,以便应用正常运行。...共有四种模式可与 Intent 对象中的Activity 标记(FLAG_ACTIVITY_* 常量)协同工作,以确定在调用 Activity 处理 Intent 时应执行的操作。...android:screenOrientation Activity 设备上的显示方向。如果Activity 是多窗口模式下运行,则系统会忽略该属性。...只有 和 属性都为true(因为它们都默认使用该值)时,系统才能启用服务。任何一项为“false”都会造成服务停用,从而使系统无法将其实例化。...此属性的默认值为false android:theme 对样式资源的引用,用于为应用中的所有Activity定义默认主题背景。各个Activity可以通过设置自己的 theme 属性来替换默认值。

    3.7K21

    Android 9.0适配及部分新特性介绍

    随后试了下模拟器以及借来的google pixel(9.0)真机运行了下,能正常使用,并没有发现什么问题,于是猜想是机子本身系统的问题。 11.01更新:莫名又正常运行了。...按进程分设基于网络的数据目录:为改善 Android 9 中的应用稳定性和数据完整性,应用无法再让多个进程共用同一 WebView 数据目录。...28 或更高级别的应用:行为与黑名单相同 黑名单(0个):受限,无论目标 SDK 如何,平台将表现为似乎接口并不存在 列入浅灰名单的非 SDK 接口包含可以 Android 9 中继续工作的函数和字段...网上有人发现了绕过API检查的方法,也有专门的库允许Android P上使用反射而没有任何限制,如FreeReflection: 1//允许Android P上使用反射而不受任何限制 2implementation...2、新特性介绍(功能及API) 2.1、显示屏缺口支持:layoutInDisplayCutoutMode Android P的真机设备或模拟器上都可以模拟屏幕缺口,提供了三种样式

    3.3K40

    APP适配测试白皮书

    由于硬件驱动和功能的不断创新,各个厂家会针对自己的终端系统上做很多的定制化工作。尤其是Android,由于源码开放且厂家众多,各厂家采用的硬件种类繁多,因此各终端系统的碎片化就越来越严重。...我们保证产品功能正常的同时,还需要兼容碎片化可能带来的潜在问题,以确保良好的用户体验。...项目各阶段适配策略 Android严重的碎片化提升了适配测试的难度,我们无法做到100%的适配测试,但可以按照不断完善的适配策略通过项目中各角色相互协同,一起努力将适配问题尽可能的减少,以便更好的提升用户体验...适配策略详解 手机横竖屏适配 从4.0版本开始,Android客户端开始适配平板和横竖屏,实现方式主要是是新增了平板以及横竖屏的layout文件,对于一个页面来说可能最多存在四种不同的layout样式:...对于底层更加复杂可测性不高的第三方组件,可以结合适配机型列表进行不同机型适配,可以采用手工和自动化的方式进行 新Android SDK/API适配 开发过程中可能会出现引用最新版的Android SDK

    74521

    API level targeting to 28,准备好了吗?

    【前言】 小编负责的地图手表项目,和Google合作,需要尽快完成targetsdk升级的适配测试工作。...Google Play的目标API级别要求:Google Play 要求新应用(自2019年8月1日起)和应用更新(自2019年11月1日起)将目标API级别至少设为28(至少为Android9.0)。...app应用涉及下载任务的模块 例如地图项目:离线地图、离线导航、导航音色包(语音广场)、样式文件、模板包 (3)....使用StrictMode API 进行测试 (3). 使用google工具veridex 对应用进行扫描 可以APK上运行静态分析工具veridex。...veridex工具也不断地更新,它存在以下局限性: 它无法检测到通过JNI 实现的调用。 它只能检测到一部分通过反射实现的调用。 它对非活动代码路径的分析仅限于API 级别的检查。 【4.

    1.3K20

    Button 的 进化之旅 | 我们是如何设计 Compose API

    开发者调查表明: 开发者发现很难理解此操作符的工作原理。从该现象中我们得到的启示是,不受设计者直接控制的 API 样式会影响开发者对 API 的认知。...比如,当为 Android 应用添加 Button时,ContainedButtonStyle 是无法对应到开发者所已知的样式的。点击这里 查看来自开发者研究的早期的感悟视频。...映射开发者的工作框架 接下来是更多的反馈 —— 我们一系列更进一步的编程活动中,重新评估了 Button API 的可用性。...支持工作框架 原始类型的重载使开发者可以避免使用可组合的 lambda 重载,而以较少的自定义空间作为代价。但是当开发者需要在原始类型的重载上,实现原本无法实现的自定义呢?...我们通常使用这种方式来评估 API 一段时间内的可用性和易学习性。这种方式可以通过倾听开发者常规工作中的反馈,来捕捉遇到困难的瞬间和受到启发的瞬间。

    69300

    React Native 开发心得分享

    pnpm 下无法启动 Android​ 错误提示:Error: Unable to resolve module .... 如果样式问题就只是这样就好了,同一套样式不同平台上所展示的效果都可能不大一样,尤其使用原生 Web 的样式,哪怕你用 style 编写, Web...网页也能成功显示效果,但是 IOS 与 Android 中绝大多数情况下是不显示的。...模拟器无法请求本地 api​ 由于一开始是 Web 端进行调试开发的,所以没留意到这个问题,直到切换到安卓模拟器之后发现模拟器无法请求本地后端服务,IOS 端暂无这问题。...假设后端 api 地址为 [http://localhost:6001](http://localhost:6001),正常情况下,开发环境下的调试主机可以通过如下方式获取 import Constants

    36431

    【Eolink】Apikit V10.8.0 版本全面升级!优先支持 DUBBO、TCP、SOAP、HSF、UDP 的接口协议

    并免费提供给所有用户,期望能帮助更多研发团队更好的完成 API 研发管理和测试的工作。以及,gRPC 协议支持功能正在优化调整中,近期也将免费开放。图片2....系统综合多个请求参数,自动生成该接口多种情况的测试用例,降低测试用例编写的工作量,提高测试效率。图片5. 分组级配置分组配置可按分组设置通用的前置脚本、后置脚本和权限校验。...旧版本不会再维护缺陷,并无法使用新功能。图片旧样式不兼容提醒 旧样式已不再维护更新,故新增功能和优化不会在旧样式上体现。并且因部分功能底层逻辑调整,故无法样式正常使用,请大家尽量切换体验新样式。...以下总结了目前旧样式无法兼容的问题:1. 新功能均无法样式上使用例如,若在新样式上创建了新增协议的接口文档,则该文档无法样式正常展示和测试。请勿样式上创建数据后,再使用旧样式功能。...测试报告只能查看新样式当前测试报告功能进行了重构,无法兼容旧样式,若希望查看定时任务报告,则需要跳转到新样式界面查看。并且旧样式上导出测试报告功能关闭,将无法导出测试报告,需要跳转到新样式导出。3.

    1.6K00
    领券