旧版SDK上的Material Design

5

我发现一些应用程序已经支持了材料设计。 例如,短信应用Textra支持材料设计,并且在我的KitKat上运行良好。 我如何在旧版本的Android上使用材料设计呢? 当我使用以下代码时,会出现错误。

<resources>
<!-- your app's theme inherits from the Material theme -->
<style name="AppTheme" parent="android:Theme.Material">
<!-- theme customizations -->
</style>

有没有解决方案?
3个回答

4

好的...有一种方法。以下是针对此问题的复杂答案。

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

您需要的内容如下:

  1. 工具栏
  2. 用于小部件(按钮、复选框等)的Material Design库

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

这里有一个漂亮的按钮等UI组件的Material Design Library。目前正在大力开发中。

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

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

.

希望对您有所帮助 :)


2

没有直接的方法,因为

<resources>
<!-- your app's theme inherits from the Material theme -->
<style name="AppTheme" parent="android:Theme.Material">
<!-- theme customizations -->
</style>

但是在KitKat中,我们可以通过使用半透明UI轻松地带来Material主题的外观和感觉。

FLAG_TRANSLUCENT_STATUS  or 
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowTranslucentStatus">true</item>

请查看此帖子以获取更多信息:KitKat 中的 Material 主题外观


1

您不能在旧版本中使用它。

但是为了防止错误,您可以为新版本的值使用指定的文件夹。 将默认的style.xml放入values文件夹中,并将适用于kitkat样式的指定style.xml放入values-v19文件夹中。 "指定"表示仅允许在API版本19+中使用的属性。


2
你确定他们使用了Material Design吗?因为在developer.android.com上说到:“新的Material Design特性(如Material主题和Activity转场效果)仅在Android L开发者预览版中可用。但是,您可以设计您的应用程序以利用这些功能,在运行Android L开发者预览版的设备上,并且仍然与之前的Android版本兼容。”也许他们只是使用自己的主题? - Orest Savchak
我不知道他们是怎么做到的。也许他们让它看起来像那样,但在描述中写着:“Textra是第一个具有新Android L材料设计外观的消息应用程序,你一定听说过。它非常令人愉悦!” - Caffeinatedwolf
1
他们可以说任何事情。Material Design的兼容性不允许在旧版本中使用它。他们没有使用Material Design的任何特性,所以制作一个看起来像这样的自定义主题并不是问题。 要隐藏状态栏,请在最低API 19的情况下使用以下代码: <item name="android:windowTranslucentStatus">true</item> - Orest Savchak
谢谢,这正是我所想的。 - Caffeinatedwolf
现在有一个支持库,可以帮助您在低端设备上使用它。 - Janusz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接