在Android 4.4 KitKat上应用材料设计

时间:2014-11-15 12:59:51

标签: android maven android-layout material-design

我已经尽力将适用于Android SDK的Material Design应用于21以下,但我失败了 我下载了appcompat-v7,将其添加到我的maven文件中:

<dependency>
    <groupId>com.android.support</groupId>
    <artifactId>appcompat-v7</artifactId>
    <version>21.0.0</version>
    <type>apklib</type>
</dependency>
<dependency>
    <groupId>com.android.support</groupId>
    <artifactId>appcompat-v7</artifactId>
    <version>21.0.0</version>
    <type>jar</type>
</dependency>

但是Material Design仍然无法使用。 有没有关于如何做的教程?我想创建一个类似于Gmail第5版的应用程序,但SDK强制我将API级别更改为21.

我只对布局感兴趣。我不想使用任何其他SDK 21功能。我正在使用IntelliJ Idea和Maven。我的目标API级别为17

2 个答案:

答案 0 :(得分:4)

可能,你可以使用这个

从Android 2.2(API 8)到现在5.0(API 21)

的材料设计

这里你需要的是:

  1. 工具栏
  2. 小部件的材质设计库(按钮,复选框等
  3. 1。工具栏

    得到这个想法,你准备好了。

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimaryDark"/>
    

    设置指南:http://antonioleiva.com/material-design-everywhere/

    来源示例:https://github.com/antoniolg/MaterialEverywhere

    要使工具栏工作更低 API 11 ,请使用 Theme.AppCompat.Light.NoActionBar 而不是windowActionBar设置为false

    <style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
         ...
    </style>
    

    2。材料设计库

    这是 Material Design Library ,适用于漂亮的按钮等。 目前它已经大量开发。

    指南,代码,示例 - https://github.com/navasmdc/MaterialDesignLibrary

    指导如何将库添加到 Android Studio 1.0 - How do I import material design library to Android Studio?

    我已回答你的问题吗?)

答案 1 :(得分:1)

您必须创建2个不同的styles.xml文件,这些文件与您将放在不同文件夹中的名称相同。

第一个,将会到这里:

res/styles.xml

并且看起来没有对Material主题的引用(使用Holo主题):

所以会有这样的事情:

<style name="AppTheme" parent="android:Theme.Holo.Light"></style>

第二个会在这里:

res/values-v21/styles.xml

并且将包含对新材质主题的引用,并且将具有:

<style name="AppTheme" parent="android:Theme.Material.Light"></style>

Android框架将根据设备支持的API自动使用正确的API框架(因此在API 21设备上它将使用Material,在所有其他设备上,它将使用您定义的任何其他内容)。

refe(Using Android L Material Design on KitKat