- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我为 Honecomb 之前的 Android 版本创建了三个不同大小的应用程序小部件,并为 Honeycomb 及更高版本创建了一个可调整大小的可滚动 ListView 小部件。
由于这些小部件提供相同的功能,并且针对 Honeycomb 及更高版本的小部件是可调整大小的,因此我想在 API 级别 12 或更高版本上删除该小部件的其他版本。这有可能吗?
据我所知,如果小部件可以找到 AppWidgetProviderInfo 资源文件,似乎没有任何方法可以禁止小部件被 AppWidgetService 注册。因此,我似乎只能在更高版本中包含小部件,但不能排除在针对早期 API 版本的 xml 文件夹中定义的版本。
最佳答案
OP 已经得到了他的解决方案,但对于我们其他人来说,我们可以利用 xml 中的 bool
值并在不同的资源目录中设置不同的值。
所以你的 AndroidManifest
看起来像这样:
<receiver
android:label="@string/app_widget_small"
android:enabled="@bool/is_pre_api_11">
<!-- App Widget Stuff Here -->
</receiver>
<receiver
android:label="@string/app_widget_large"
android:enabled="@bool/is_pre_api_11">
<!-- App Widget Stuff Here -->
</receiver>
<receiver
android:label="@string/app_widget_resizeable"
android:enabled="@bool/is_post_api_11">
<!-- App Widget Stuff Here -->
</receiver>
在 /res/values/attrs.xml
中:
<resources>
<bool name="is_pre_api_11">true</bool>
<bool name="is_post_api_11">false</bool>
</resources>
然后在 /res/values-v11/attrs.xml
中:
<resources>
<bool name="is_pre_api_11">false</bool>
<bool name="is_post_api_11">true</bool>
</resources>
现在,您的 API 10 及更低版本将拥有两个应用小部件(小型和大型),而 API 11 及更高版本将拥有一个可调整大小的应用小部件。
关于android - 根据 API 级别隐藏应用小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680449/
Android 项目中最低(最低 sdk)和最高(目标 sdk)级别是否有任何影响。这些东西是否会影响项目的可靠性和效率。 最佳答案 没有影响,如果您以 SDK 级别 8 为目标,那么您的应用将以 9
我将现有的 android 项目升级到 API 级别 31。我使用 Java 作为语言。我改变了 build.gradle compileSdkVersion 31 defaultConfig {
我正在使用 ionic 3 创建一个 android 应用程序,当我尝试上传到 playstore 时,我收到一个错误,提示我的应用程序以 api 25 为目标,当我检查我的 project.prop
我刚刚尝试将应用程序的目标和编译 API 级别更新为 29 (Android 10),并注意到我无法再编译,因为 LocationManager.addNmeaListener 只接受 OnNmeaM
我的代码没有在 Kitkat 上显示工具栏。 这是我的两个 Android 版本的屏幕截图。 Kitkat 版本: Lollipop 版: 这背后的原因可能是什么。 list 文件
我正在构建面向 API 级别 8 的 AccessabilityService,但我想使用 API 级别 18 中引入的功能 (getViewIdResourceName())。这应该可以通过使用 A
当我想在我的电脑上创建一个 android 虚拟机时,有两个选项可以选择目标设备。它们都用于相同的 API 级别。那么我应该选择哪一个呢?它们之间有什么区别? 最佳答案 一个是基本的 Android,
当我选择 tagret 作为 Android 4.2.2(API 级别 17)时,模拟器需要很长时间来加载和启动。 所以我研究它并通过使用 找到了解决方案Intel Atom(x86) 而不是 ARM
我有一个使用 Android Studio 创建的 Android 项目。我在项目中添加了一些第三方依赖项,但是当我尝试在 Android Studio 中编译时,我遇到了以下错误: Error:Ex
如上所述,如何使用 API 8 获取移动设备网络接口(interface)地址? 最佳答案 NetworkInterface.getInetAddresses() 在 API8 中可用。 关于andr
我想显示 Snackbar并使用图像而不是文本进行操作。 我使用以下代码: val imageSpan = ImageSpan(this, R.drawable.star) val b
我有一个用 python 编写的简单命令行程序。程序使用按以下方式配置的日志记录模块将日志记录到屏幕: logging.basicConfig(level=logging.INFO, format='
使用下面的代码,实现游戏状态以控制关卡的最简单和最简单的方法是什么?如果我想从标题画面开始,然后加载一个关卡,并在完成后进入下一个关卡?如果有人能解释处理这个问题的最简单方法,那就太好了! impor
我想创建一个可以找到嵌套树结构深度的属性。下面的静态通过递归找出深度/级别。但是是否可以将此函数作为同一个类中的属性而不是静态方法? public static int GetDepth(MenuGr
var myArray = [{ title: "Title 1", children: [{ title: "Title 1.1", children: [{
通过下面的代码,实现游戏状态来控制关卡的最简单、最容易的方法是什么?如果我想从标题屏幕开始,然后加载一个关卡,并在完成后进入下一个关卡?如果有人可以解释处理这个问题的最简单方法,那就太好了! impo
我有一个树结构,其中每个节点基本上可以有无限个子节点,它正在为博客的评论建模。 根据特定评论的 ID,我试图找出该评论在树中的深度/级别。 我正在关注 this guide that explains
考虑任何给定的唯一整数的数组,例如[1,3,2,4,6,5] 如何确定“排序度”的级别,范围从 0.0 到 1.0 ? 最佳答案 一种方法是评估必须移动以使其排序的项目数量,然后将其除以项目总数。 作
我如何定义一个模板类,它提供一个整数常量,表示作为输入模板参数提供的(指针)类型的“深度”?例如,如果类名为 Depth,则以下内容为真: Depth::value == 3 Depth::value
我的场景是:文件接收器应该包含所有内容。另一个接收器应包含信息消息,但需要注意的是 Microsoft.* 消息很烦人,因此这些消息应仅限于警告。两个sink怎么单独配置?我尝试的第一件事是: str
我是一名优秀的程序员,十分优秀!