5

Я пытаюсь использовать PercentFrameLayout, но я получаю сообщение об ошибке:PercentFrameLayout: Вы должны поставить layout_width атрибут

Binary XML file line #: You must supply a layout_width attribute. 

Это XML-я использую:

<android.support.percent.PercentFrameLayout 
    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"> 

    <ImageView 
     app:layout_heightPercent="50%" 
     app:layout_marginLeftPercent="25%" 
     app:layout_marginTopPercent="25%" 
     app:layout_widthPercent="50%"/> 
</android.support.percent.PercentFrameLayout> 

Является ли это ошибка или это моя ошибка?

+0

Это похоже на пример на http://developer.android.com/reference/android/support/percent/PercentFrameLayout.html, отличный от порядка параметров, поэтому я предполагаю, что это правильно. Вы уверены, что это взгляды с проблемой? Если вы удалите эти представления, ваша компоновка загрузится правильно? –

+0

@CoryCharlton да, это из документа и да, это взгляд с проблемой. Android Studio подчеркивает, что это тоже проблема. –

ответ

4

В layout_width и layout_height атрибутов по-прежнему необходимы в связи с техническим макетом XML, но эффективно игнорируются в PercentFrameLayout или PercentRelativeLayout.

Вы просто должны установить значение 0dp или wrap_content:

<ImageView 
    android:layout_height="0dp" 
    android:layout_width="0dp" 
    app:layout_heightPercent="50%" 
    app:layout_marginLeftPercent="25%" 
    app:layout_marginTopPercent="25%" 
    app:layout_widthPercent="50%" /> 

Это похоже на использование стандартного LinearLayout с layout_weight, где вы должны указать layout_width тоже.

+0

Но документ говорит: «Нет необходимости указывать layout_width/height, если вы укажете layout_widthPercent.' –

+0

@RalphBergmann. Это странно, я даже не смог скомпилировать XML без указания ширины/высоты. Поэтому я не уверен, документы правильные. – Floern

+0

Похоже, что это необходимо. Я пробовал использовать ширину/высоту (без исключений) и может получить только правильное отображение, установив оба значения в 0dp. – Rachael

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