钛 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/.