PercentRelativeLayout - layout_width пропускает предупреждение

Я пробую PercentRelativeLayout из библиотеки поддержки, и документы просто просят меня указать свойство app:layout_widthPercent. Однако, когда я делаю это, Android Studio выдает мне красное предупреждение о том, что layout_width не указан.

Помимо подавления предупреждения, есть ли способ обойти это?

Например:

    <android.support.percent.PercentRelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/expiry_month_wrapper"
            app:layout_widthPercent="25%"
            android:layout_height="wrap_content">
            <EditText
                android:id="@+id/expiry_month_editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxLength="2"
                android:hint="@string/month"
                android:focusable="true"
                android:inputType="number"/>
        </android.support.design.widget.TextInputLayout>

      <!-- more TextInputLayout fields -->

    </android.support.percent.PercentRelativeLayout>

Предупреждение дано на TextInputLayout.

2 ответа

Решение

Я понимаю, что это старый вопрос - но, столкнувшись с этой проблемой, я хочу убедиться, что она доступна для всех:)

Добавление вида к вашему PercentRelativeLayout выдаст визуальную ошибку в текстовом редакторе. Может даже не отображаться на экране. Запустите ваш эмулятор, и он должен решить проблему видимости.

Для устранения ошибки просто добавьте android:layout_width="0dp" Пока ваш widthPercent а также heightPercent установлены правильно, у вас не будет проблем.

Вот мой пример проверенного кода

            android:text="Label label"
            android:id="@+id/btn1"
            android:layout_height="wrap_content"
            android:layout_width="0dp"
            android:layout_alignParentTop="true"
            app:layout_widthPercent="50%"
            app:layout_heightPercent="30%"
            android:textSize="17sp"/>

        <Button
            android:text="Other other other"
            android:id="@+id/btn2"
            android:layout_height="wrap_content"
            android:layout_width="0dp"
            android:layout_toRightOf="@id/btn1"
            app:layout_widthPercent="50%"
            app:layout_heightPercent="30%"
            android:textSize="17sp"/>

По соглашению необходимо включать и layout_width и layout_height, даже если они функционально игнорируются app PercenRelativeLayout:layout_widthPercent и app:layout_aspectRatio, соответственно.

В вашем случае, используя исключительно app:layout_widthPercent, просто установите для android: layout_width любое количество независимых от плотности пикселей, чтобы избавиться от предупреждения.

Например: android:layout_width = "0dp"

Другие вопросы по тегам