【问题标题】:CoordinatorLayout element isn't declared未声明 CoordinatorLayout 元素
【发布时间】:2017-12-06 00:04:56
【问题描述】:

我对编程有点陌生,所以请耐心等待。我正在尝试按照 ResoCoder 在 youtube 上的教程创建 FAB 菜单,但声明的 CoordinatorLayout 元素存在问题。

它会抛出这个警告:

“android.support.design.widget.CoordinatorLayout”未声明。

这是 AXML 文件。

<?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"
    >

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Hello FAB menu!"
    android:textSize="24sp"/>

  <View
    android:id="@+id/bg_fab_menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#48000000"
    android:alpha="0"
    android:visibility="gone"/>

  <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_airballoon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/standard_23"
    android:visibility="gone"
    android:rotation="90"
    app:fabSize="mini"
    app:srcCompat="@drawable/ic_airballoon"/>

</android.support.design.widget.CoordinatorLayout>

这是警告的图像。

Warning

编辑:

现在显示在“设计器”选项卡上

Error on designer tab

【问题讨论】:

  • 不 ;^( 阅读我对你答案的评论。
  • 1.所以最近我在构建我的应用程序时遇到了这个错误,我在做什么 XML 我有 CoordinatorLayout 在可绘制文件夹中创建它,这是错误的。所以把它放在布局文件夹中,它会解决你的问题。 2. 在 build.gradle app 中添加:implementation 'com.android.support:design:28.0.0-alpha3'。

标签: android xml android-layout xamarin android-support-library


【解决方案1】:

简答:

这只是一个警告而不是错误,您可以毫无问题地编译您的项目。

长答案:

问题是 Intellisense 无法选择您键入的属性,尽管这些属性确实存在于 android SDK 中。所以 Visual Studio 显示:

The 'android.support.design.widget.CoordinatorLayout' is not declared.

要解决这个问题,你应该enable Intellisense in Android .axml files。但与文档略有不同,您可以从以下链接下载android-layout-xml.xsdschemas.android.com.apk.res.android.xsd 文件:

下载文件并编辑android-layout-xml.xsd 并添加ConstraintLayout 元素。然后手动将这些文件移动到:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\XML\Schemas\1033 

或者只是在 Visual Studio 中添加这些架构。重启你的VS,这个警告就消失了

建议:

建议忽略警告,您可以顺利编译项目。

更新:

否则,在编译后我会收到如下错误:“错误:未找到与给定名称匹配的资源(在 'layout_margin' 处,值为 '@dimen/standard_23')。”我认为这是因为没有声明 CoordinatorLayout。

dimen 属性需要你自己创建,确保你也复制了dimens.xml 文件。您需要在Resource\values\dimens.xml 中创建dimens.xml,在此文件中定义standard_23 的大小。然后编译可以找到standard_23的大小。

dimen.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <dimen name="action_button_min_width">56dp</dimen>
  <dimen name="indeterminate_progress_size">32dp</dimen>
  <dimen name="standard_23">23dp</dimen>

</resources>

【讨论】:

  • 反正编译不正确。我照你说的做了,但也没有用。
  • @Alasdair,是的,删除警告有点复杂,忽略警告就可以了。
  • @Alasdair,当您的项目编译失败时,错误是什么?请张贴错误信息。请确保您已安装 Xamarin.Android.Support.Design nuget 包。
  • 我确保安装了 nuget 包。我会在今晚晚些时候有空的时候发布错误。谢谢。
  • 编译前设计器选项卡出现错误,所以我编辑了主帖并放在那里。否则,在编译后我会收到如下错误:“错误:未找到与给定名称匹配的资源(在“layout_margin”处,值为“@dimen/standard_23”)。我认为这是因为没有声明 CoordinatorLayout。
猜你喜欢
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2016-04-21
  • 2017-07-15
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多