没有为app找到资源ID:来自CollapsingToolbarLayout的layout_scrollflags

时间:2015-07-02 08:33:18

标签: android androiddesignsupport android-collapsingtoolbarlayout

这个问题的标题基本上都说明了一切。我收到错误: 找不到应用程序的资源标识符:来自CollapsingToolbarLayout的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

8 个答案:

答案 0 :(得分:27)

试试这个

添加应用级 build.gradle

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

然后构建 - &gt; 重建项目

答案 1 :(得分:26)

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

照我说的做法:

  1. 导入 android-design-library 项目。该项目是在 “的 SDK /演员/机器人/支持/设计/ ”。并将其设置为库 项目,如果不是。
  2. 将上述项目作为库导入主项目。
  3. 你必须这样做,因为xmlns:app="http://schemas.android.com/apk/res-auto"意味着你需要来自你的图书馆项目或当前项目的本地资源,在这种情况下,这意味着你需要来自 android-design-的图书馆项目的资源文库

答案 2 :(得分:4)

正如其他人所说,你肯定需要为你的Android应用添加Design Support Library依赖。最简单的方法是在app level 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对我有用。

答案 3 :(得分: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>

答案 4 :(得分:1)

我是这样做的

  1. 从*
  2. 导入 AppCompat V7
      

    C:\生产力\机器人-的SDK \额外\机器人\支持\ V7 \程序兼容性

    在导入项目对话框中

    检查复制到工作区

    1. 定位Android版本的apcompat到Android 6.0
        

      项目 - &GT;属性 - &GT; Android的

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

      1. 导入设计库
          

        C:\生产力\机器人-的SDK \额外\机器人\支持\设计

        按照相同的步骤导入1&amp;中提到的项目2.

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

          项目 - &GT;属性 - &GT; Android的

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

            项目 - &GT;属性 - &GT; Android的

          2. 使用Android 6.0清理和构建项目所有编译错误现在都必须消失。

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

答案 5 :(得分:0)

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

app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"

答案 6 :(得分:0)

添加应用级别的build.gradle

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

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

答案 7 :(得分:0)

如果您使用的是AndroidX,则上述解决方案将无效。

这是我解决此问题的方法:

  • 您需要实现此

    implementation 'com.google.android.material:material:1.1.0-alpha06'
    
  • 也许您需要Invalidate Caches/Restart才能为您工作:

  

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

有关更多信息,请检查Migrating to AndroidX page