如何修复xamrian.android中的未绑定前缀

时间:2019-01-30 20:44:17

标签: c# xamarin.android

所以我是android开发的新手,我正在学习课程,但是当我想运行该程序时,我遇到了一条错误消息: 解析以下代码中第2行中的XML:unbound前缀时出错(此代码位于activity_main中) 我从先前回答的问题中尝试了许多解决方案,但没有成功

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />


and here what i have in layout>content_main

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">

<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">>
<EditText
android:layout_width ="match_parent"
android:layout_height="wrap_content" />

<Button
    android:layout_width ="match_parent"
    android:layout_height="wrap_content"
    android:text ="CALCULATE" />

<LinearLayout
    android:layout_width ="match_parent"
    android:layout_height="wrap_content">
<TextView
        android:text ="Tip"
        android:layout_width ="wrap_content"
        android:layout_height="wrap_content" />
<TextView
        android:layout_width ="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
    android:layout_width ="match_parent"
    android:layout_height="wrap_content">
<TextView
        android:text ="Total"
        android:layout_width ="wrap_content"
        android:layout_height="match_parent" />
<TextView
        android:layout_width ="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

因此,foreach (var item in ellipse) { // In there you has access to each member of your list or array Console.WriteLine(item.Name) } 错误告诉您,您正在XML文件中使用无法识别的前缀。

用前缀表示在冒号之前的值。例如:

unbound prefix

在上面的代码段中, android 是前缀。

告诉XML文件支持哪些前缀值的方法是提供 XML命名空间。您可以使用<Button android:layout_width ="match_parent" android:layout_height="wrap_content" android:text ="CALCULATE" /> 属性来完成此操作:

xmlns

在上面的代码段中,已经定义了4个前缀:广告,Android,应用和工具

您只需在根(最顶部)元素上定义一次这些前缀。然后,所有其他嵌套/子元素都可以使用前缀。您的XML文件应仅包含一个根元素。其他所有内容都应在此根目录下。

对于上面发布的xml,我看到两个问题:

  1. 您的浮动操作按钮需要嵌套在根布局中
  2. 您只需要在根目录一次定义XML命名空间。看起来它定义了两次,一次在RelativeLayout上,一次在LinearLayout上。

尝试修改布局,使其看起来像这样:

<RelativeLayout 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main">

在上面的xml中,我进行了以下更改:

  1. 只有一个根布局(RelativeLayout),其他所有内容(包括FloatingActionButton)都嵌套在该根内部
  2. 仅将XML命名空间定义为根上的第一个属性。必须先定义它们,然后才能使用它们!

希望有帮助!