我正在使用Delphi开发穿戴操作系统应用程序。我想要将Android:windowSwipeToDismisse设置为False,但在Delphi中我只能修改Android清单,不能更改样式(或者我不知道如何更改),所以我想做一些类似的事情
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="%package%"
android:versionCode="%versionCode%"
android:versionName="%versionName%"
android:installLocation="%installLocation%">
<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
<%uses-permission%>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<queries>
<%queries-child-elements%>
</queries>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:persistent="%persistent%"
android:restoreAnyVersion="%restoreAnyVersion%"
android:label="%label%"
android:debuggable="%debuggable%"
android:largeHeap="%largeHeap%"
android:icon="%icon%"
android:theme="%theme%"
android:hardwareAccelerated="%hardwareAccelerated%"
android:resizeableActivity="false"
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true">
<%provider%>
<%application-meta-data%>
<%uses-libraries%>
<%services%>
<!-- Our activity is a subclass of the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity
android:name="com.embarcadero.firemonkey.FMXNativeActivity"
android:label="%activityLabel%"
android:theme="@manifest/Themeabc"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTask">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name" android:value="%libNameValue%" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<%activity%>
<%receivers%>
<resources>
<style name="Themeabc" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:windowSwipeToDismiss">false</item>
</style>
</resources>
</application>
</manifest>
但这里有个问题:
android:theme="@manifest/Themeabc"
我收到错误:C:\Path\androidManifest.xml:51:Error:Error:找不到与给定名称匹配的资源(位于‘Theme’,值为‘@MANIFEST/Themeabc’)。
也许写下“@MANIFEST/Themeabc”换句话说就是帮助?但我不知道这个Android.xml到底是如何工作的
我可以定义本地风格并像在html中一样使用它吗?
我尝试了@androidManifest/Themeabc,@MANIFEST/Themeabc。
1条答案
按热度按时间ui7jx7zq1#
问题似乎出在您指定的“@MANIFEST”资源类型上。
根据文档,Android资源(如样式、可绘制内容、字符串等)表示为以下格式的值(这是一个Java注解):
@[package:]type/name
如果资源是由您的应用程序提供的(包括由库依赖项提供的资源,因为库资源合并到您的应用程序资源中),则可以省略此处的包名称。当您想要使用Android框架中的资源时,唯一另一个有效的包名是“Android”。
这里的类型是资源的类型,例如“字符串”或“Drawable”(而不是您提到的“清单”中声明的文件)。名称是标识特定资源的名称。下面是一个例子:
对于样式(和主题),默认注解为:
@[package:]style/style_name
在应用程序的资源XML文件中声明如下:
当在“Android清单”中的活动中使用这种风格/主题时,它将是这样的:
您必须正确设置资源的类型。
此外,如果设置资源类型不能解决问题,那么您应该将样式声明从Android清单移到“res/Value”文件夹中的一个独立的XML资源文件中。
这个XML文件可以只用于样式,也可以用于在一个
<resources>
节点下组合其他Android Simple资源。因为样式是使用“name”属性中提供的值(而不是XML文件的名称)引用的。文件位置必须是“res/values/filename.xml”,其中文件名是任意的。元素的名称将用作资源ID。
在Delphi中,您必须创建此XML文件并将其添加到部署管理器中,并将其远程文件属性设置为“res/value/filename.xml”
您可以通过查看以下链接获取有关Android API的更多信息: