2016-09-30 6 views
1

Я пытаюсь центрировать два текстовых изображения вертикально с использованием цепей компоновки ограничений. Я знаю, что смогу обернуть текстовые макеты в линейном макете, но я хотел попробовать новую функцию. Когда я строю свой проект, хотя я получаю сообщение об ошибке, Error:(28, 50) No resource found that matches the given name (at 'layout_constraintBottom_toTopOf' with value '@id/item_school_location').Ограничение привязки с привязкой к цепочке

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <android.support.constraint.ConstraintLayout 
     android:layout_width="match_parent" 
     android:layout_height="72dp"> 

     <ImageView 
      android:id="@+id/item_school_logo" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:layout_marginStart="16dp" 
      android:contentDescription="@string/item_school_logo_description" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintTop_toTopOf="parent" 
      app:layout_constraintVertical_bias="0.5" /> 

     <TextView 
      android:id="@+id/item_school_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="16dp" 
      android:layout_marginStart="72dp" 
      android:maxLines="1" 
      android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Subtitle" 
      app:layout_constraintBottom_toTopOf="@id/item_school_location" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintTop_toTopOf="parent" 
      app:layout_constraintVertical_bias="0.5" 
      app:layout_constraintVertical_chainPacked="true" /> 

     <TextView 
      android:id="@+id/item_school_location" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="16dp" 
      android:layout_marginStart="72dp" 
      android:maxLines="1" 
      android:textAppearance="@style/TextAppearance.AppCompat.Small" 
      android:textSize="16sp" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintTop_toBottomOf="@id/item_school_name" /> 
    </android.support.constraint.ConstraintLayout> 
</layout> 

Каждый знает, что вызывает эту ошибку?

ответ

5
app:layout_constraintLeft_toLeftOf="parent" 

Может быть, я не совсем в курсе, но я думаю, что значение не должно быть «родителем» - это должно быть мнение ID (в формате «@ + ид/some_id»).

Дайте вашему ограничению макет id, а затем попробуйте использовать это вместо родителя.

Редактировать: Я думаю, что я устарел от этого? Потому что я только что прочитал, что снова, и ваша ошибка кажется, что эта линия:

layout_constraintBottom_toTopOf="@id/item_school_location" 

отсутствующий + после @ - как в нем должен быть

layout_constraintBottom_toTopOf="@+id/item_school_location" 
+0

Хах! У меня была аналогичная проблема. Я не ожидал, что это сработает, но так оно и было. Я полагаю, что первая ссылка на ID (сверху) должна иметь знак +. – amram99

+0

@ amram99 - насколько я знаю, все ссылки на id в файле макета должны иметь + впереди. Попробуйте, я вполне уверен, что даже если ваша ссылка является вторым вводом идентификатора, она все равно не будет работать правильно без + –

+1

, фактически + указывает, что вы назначаете новый идентификатор. Обычно вы ссылаетесь на ID без + (например, в RelativeLayout, но Android прощает о назначении одного и того же ID несколько раз. Проверьте этот ответ - http://stackoverflow.com/a/5731533/389643. Но так как Android использует порядок элементов для определения z-порядка, иногда вам приходится ссылаться на идентификатор над определением элемента, а иногда и на проблемы компилятора. – amram99

1

Я думаю

Не найдено ни одного ресурса, соответствующего указанному имени.

Ошибка связана с тем, что вы ссылаетесь id элемента (item_school_location), который объявляется после ссылки на элемент (item_school_name).

В этом случае, было бы полезно, если вы объявляете идентификаторы ваших родственных элементов в отдельном файле ids.xml (проверьте это: https://stackoverflow.com/a/12247971)

 Смежные вопросы

  • Нет связанных вопросов^_^