35

这个问题的标题基本上说明了一切。我收到错误消息:找不到来自 CollapsingToolbarLayout 的 app:layout_scrollflags 的资源标识符。我使用eclipse并导入了设计库jar文件。我可以在我的课程中使用设计支持布局,所以这是正确的

这是我使用的一段代码:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/activityBg"
tools:context=".MainActivity"
>

<android.support.design.widget.AppBarLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <include
            layout="@layout/toolbar"/>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

示例:http ://android-developers.blogspot.in/2015/05/android-design-support-library.html

4

8 回答 8

29

仅导入设计库 jar 文件是不够的。您需要导入android-design-library项目的资源,而 jar 文件只包含类文件。

照我说的做:

  1. 导入android-design-library项目。该项目位于“ sdk/extras/android/support/design/ ”。如果不是,则将其设置为库项目。
  2. 将上述项目作为库导入到您的主项目中。

您必须这样做,因为xmlns:app="http://schemas.android.com/apk/res-auto"意味着您需要来自库项目或当前项目的本地资源,在这种情况下,这意味着您需要来自android-design-library库项目的资源。

于 2015-07-02T09:27:32.003 回答
28

试试这个

添加应用级build.gradle

    compile 'com.android.support:design:24.2.1'

然后构建->重建项目

于 2016-10-11T10:25:17.503 回答
6

正如其他人所说,您肯定需要将设计支持库依赖项添加到您的 android 应用程序中。最简单的方法是将以下内容添加到应用程序级别的 gradle 文件中 -

compile 'com.android.support:design:25.3.1'

但是有几点需要注意-

  1. 此支持库不应使用与 compileSdkVersion 不同的版本。因为我在使用compileSdkVersion 25我必须使用compile 'com.android.support:design:25.3.1'而不是compile 'com.android.support:design:24.2.1'
  2. 使用设计库需要使用 theme.appcompat 或后代。如果您想为您的活动添加操作栏,那么您的主题应该是 AppCompat。就我而言,我正在使用android:Theme.Material它,因为它失败了。将其更改为Theme.AppCompat.Light.NoActionBar对我有用。
于 2017-04-01T10:08:54.347 回答
4

Androidx 解决方案:

如果您使用的是AndroidX,上述解决方案将不起作用

您将需要实现这一点:

implementation 'com.google.android.material:material:1.1.0-alpha06'

请注意,也许您需要这样做才能Invalidate Caches/Restart为您工作:

文件 > 使缓存无效/重新启动

有关更多信息,请查看迁移到 AndroidX 页面

于 2019-06-01T09:22:16.937 回答
2

尝试将此代码添加到 xml 文件中:

app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
于 2019-05-02T04:08:49.500 回答
1

为此,您应该使用这种类型的布局层次结构。确保在 eclipse 的情况下将设计支持库作为参考项目包含在内

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true" >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbarlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true" >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp" >

            <ImageView
                android:id="@+id/ivProfileImage"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                app:layout_collapseMode="parallax"
                android:contentDescription="@null"
                android:fitsSystemWindows="true"
                android:minHeight="100dp"
                android:scaleType="fitXY" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        android:layout_gravity="fill_vertical"
        app:layout_anchorGravity="top|start"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" >
    </android.support.v4.widget.NestedScrollView>
于 2015-07-02T08:44:20.567 回答
1

这是我的做法

  1. 从 *导入AppCompat V7

C:\Productivity\android-sdks\extras\android\support\v7\appcompat

并在导入项目对话框中选中复制到工作区。

  1. 目标 Android Build 版本的 apcompat 到 Android 6.0 从

项目->属性->Android

它应该删除所有编译错误。

  1. 导入设计

C:\Productivity\android-sdks\extras\android\support\design

按照相同的步骤导入 1 和 2 中提到的项目。

  1. 将导入的设计库标记为 Android 库,如果显示错误,请将 AppCompat V7 库添加到您的设计库的构建路径中

项目-> 属性-> Android。

  1. 最后添加 design 和 appcompat 来构建你的 Android 项目的路径

    项目->属性->Android

使用 Android 6.0 清理并构建您的项目,现在必须消除所有编译错误。

恭喜您现在可以在 Eclipse 中使用材料设计。希望它对某人有所帮助

于 2016-02-13T06:52:37.397 回答
0

添加应用级 build.gradle

implementation 'com.android.support:design:28.0.0'

版本应该与您的 compileSdkVersion 匹配。我用的是 28 版。

于 2019-05-14T08:13:26.353 回答