【问题标题】:how to use material design features in api lower than 21 in eclipse?如何在eclipse中使用低于21的api中的材料设计功能?
【发布时间】:2015-03-11 07:38:19
【问题描述】:

关于这个有很多问题,但没有一个对我有帮助。

所以请告诉我如何在 Eclipse 中启用材料设计功能。

我还在项目中导入了 appcompat_v7 库,但它没有创建一个名为 values_v21 的文件夹,这有助于使用我认为的那些功能。

所以请帮帮我

这是我的 style.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/AppTheme_ActionBar</item>
        <item name="android:actionBarSize">@dimen/action_bar_height</item>
        <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
        <item name="android:homeAsUpIndicator">@drawable/ic_ab_up_compat</item>
       <item name="android:actionBarTabTextStyle">@style/tabtextcolor</item>
        <item name="android:actionOverflowButtonStyle">@style/AppTheme_ActionBar_Overflow</item>
    </style>

    <style name="AppTheme_ActionBar" parent="android:Widget.Holo.ActionBar.Solid">
        <item name="android:background">@color/apptheme_primary</item>
         <item name="android:actionBarTabTextStyle">@style/tabtextcolor</item>
        <item name="android:icon">@drawable/actionbar_icon_placeholder_compat</item>
        <item name="android:titleTextStyle">@style/AppTheme_ActionBar_Title</item>
    </style>

    <style name="AppTheme_ActionBar_Title" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">20sp</item>
    </style>

    <style name="AppTheme_ActionBar_Overflow" parent="android:Widget.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_ab_overflow_compat</item>

    </style>


    <style name="tabtextcolor" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
    <item name="android:textColor">@android:color/white</item>
</style>
</resources>

【问题讨论】:

  • 你可以创建values-v21

标签: android android-appcompat material-design


【解决方案1】:

有几点你应该检查:

  • 导入eclipse,最新版android-support-v7-appcompat 项目。您应该通过 SDK Manager 更新,并从 {your_path_to_android_sdk}/extras/android/support/v7/appcompat 导入项目
  • 将此项目作为库依赖项添加到您的项目中
  • styles.xml 中使用Theme.AppCompat.LightTheme.AppCompat

    style name="AppTheme" parent="@style/Theme.AppCompat.Light"

【讨论】:

  • 但是导入这个库不会创建文件夹值-v21或者没关系,你能告诉我导入这个库后我需要在styles.xml中做的完整更改吗?
  • 不,导入此库不会创建 values-v21 本身。此文件夹(如果存在于 Android 应用程序中)用于 Api-Level 21 设备,因此如果您打算仅在较低级别的设备中使用 Material Design,则不需要此文件夹。如果两者都需要,则应为每个 API 级别创建单独的文件夹
  • 当我将主题更改为 theme.appcompat 时,它会删除我的 r 文件
  • 你是如何导入 appcompat 库的?这还不够,只需将 jar 文件添加到 libs 文件夹中即可。您应该将其导入为 Android 库(项目属性-> Android -> 库)
  • 是的,我也在做同样的事情。实际上我想在我的列表视图上创建一个浮动操作按钮。但它总是在 Eclipse 中显示错误。这是我将主题更改为 appcompat name="AppTheme" parent="android:Theme.AppCompat.Light.DarkActionBar" 的 xml 行
【解决方案2】:

一个简单的指南:

  • 导入 appcompat-v7 项目并将其添加为项目的库依赖项
  • 让您的主题继承一些 appcompat 主题。例如&lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light"&gt;
  • 请注意,并非所有小部件(UI 元素)都是 appcompat 的材质样式
  • 遵循android-developers blogspot 中的示例和说明。
  • values-vXY 文件夹用于为特定平台添加特定资源。例如,您可以添加一个样式(在values-v21 文件夹中),该样式继承了一些内置的材质样式,并且只有一个 api 级别 21+ 可用。这些文件夹是手动创建的,仅在您需要特定平台级别的替代资源时使用。当您希望您的应用程序更好地适应所有/许多 android 版本时,可以使用它们。更多信息 - 在android developers portal

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多