钛 Alloy Material 设计
Titanium with Alloy Material Design
首先对不起我的英语!
我阅读了这篇文章:http://www.appcelerator.com/blog/2015/07/understanding-the-android-material-theme/ 按照步骤在我的 Android 应用程序上使用 Material 主题!它适用于 Titanium Classic,但不适用于 Alloy Framework。这两种方法有区别吗?
使用 Alloy 我只是看不出有无主题有任何差异。
我收到的错误是:
[ERROR] Detected legacy "/platform" directory in project directory.
[ERROR] Please move the "/platform" directory to "/app/platform" for Alloy 1.8.0 or later. [ERROR] Alloy compiler failed
但是将 /platform 移动到 /app/platform 它仍然无法正常工作
谢谢你,卢卡
编辑:
我找到了可能的修复方法。在我的 tiapp.xml(使用 TiShadow 生成)中,我有:
<android xmlns:android="http://schemas.android.com/apk/res/android">
**POSITION ONE**
<manifest android:versionCode="6" android:versionName="1.5.0">
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
//long list of uses-permission
<uses-feature android:name='android.hardware.microphone' android:required="false" />
//long list of uses-features
<application>
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
</application>
</manifest>
**POSITION TWO**
</android>
我必须插入:
<manifest>
<application android:theme="@style/Theme.Appcelerator"> </application>
</manifest>
如果我将它插入 POSITION ONE,它不起作用(完全忽略);但如果我将它插入 POSITION TWO 它工作正常。
我试了很多次都是一样的结果。有人可以给我一个解释吗? :困惑:
首先,请通过添加您的答案来编辑您的问题,因为它不是答案。
现在开始你的查询,两个职位背后的原因是:
application标签必须在manifest标签里面,否则会被忽略。
由于 manifest 标签是最顶层的标签,这就是为什么 Pos 1 被忽略而其余 manifest 标签被认为在 manifest,这就是 Pos 2 起作用的原因。
现在,您已经在 uses-feature 下方添加了 application 标签,您只需添加 android:theme="@style/Theme.Appcelerator" 属性到 application 标签。
因此 tiapp.xml 中的最终 android 标记将如下所示:
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest android:versionCode="6" android:versionName="1.5.0">
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-feature android:name='android.hardware.microphone' android:required="false" />
<application android:theme="@style/Theme.Appcelerator">
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
</application>
</manifest>
</android>
仅供参考,标记为正确答案的解决方案不再有效,因为 Appcelerator 将在构建过程中删除 /res/values/ 目录,并出现无法找到您新创建的主题的错误。截至目前,将您的 theme.xml 放入 app/platform/android/.
首先对不起我的英语! 我阅读了这篇文章:http://www.appcelerator.com/blog/2015/07/understanding-the-android-material-theme/ 按照步骤在我的 Android 应用程序上使用 Material 主题!它适用于 Titanium Classic,但不适用于 Alloy Framework。这两种方法有区别吗?
使用 Alloy 我只是看不出有无主题有任何差异。
我收到的错误是:
[ERROR] Detected legacy "/platform" directory in project directory.
[ERROR] Please move the "/platform" directory to "/app/platform" for Alloy 1.8.0 or later. [ERROR] Alloy compiler failed
但是将 /platform 移动到 /app/platform 它仍然无法正常工作
谢谢你,卢卡
编辑:
我找到了可能的修复方法。在我的 tiapp.xml(使用 TiShadow 生成)中,我有:
<android xmlns:android="http://schemas.android.com/apk/res/android">
**POSITION ONE**
<manifest android:versionCode="6" android:versionName="1.5.0">
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
//long list of uses-permission
<uses-feature android:name='android.hardware.microphone' android:required="false" />
//long list of uses-features
<application>
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
</application>
</manifest>
**POSITION TWO**
</android>
我必须插入:
<manifest>
<application android:theme="@style/Theme.Appcelerator"> </application>
</manifest>
如果我将它插入 POSITION ONE,它不起作用(完全忽略);但如果我将它插入 POSITION TWO 它工作正常。
我试了很多次都是一样的结果。有人可以给我一个解释吗? :困惑:
首先,请通过添加您的答案来编辑您的问题,因为它不是答案。
现在开始你的查询,两个职位背后的原因是:
application标签必须在manifest标签里面,否则会被忽略。
由于 manifest 标签是最顶层的标签,这就是为什么 Pos 1 被忽略而其余 manifest 标签被认为在 manifest,这就是 Pos 2 起作用的原因。
现在,您已经在 uses-feature 下方添加了 application 标签,您只需添加 android:theme="@style/Theme.Appcelerator" 属性到 application 标签。
因此 tiapp.xml 中的最终 android 标记将如下所示:
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest android:versionCode="6" android:versionName="1.5.0">
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-feature android:name='android.hardware.microphone' android:required="false" />
<application android:theme="@style/Theme.Appcelerator">
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
</application>
</manifest>
</android>
仅供参考,标记为正确答案的解决方案不再有效,因为 Appcelerator 将在构建过程中删除 /res/values/ 目录,并出现无法找到您新创建的主题的错误。截至目前,将您的 theme.xml 放入 app/platform/android/.