проблема создания макета Android - PullRequest
4 голосов
/ 03 января 2012

Я новичок в разработке Android. Я создал одно приложение для Android, и для этого ниже мой main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:background="@drawable/bg"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:id="@+id/grid_layout_1"
    android:layout_centerInParent="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <Button android:id="@+id/btnLogin" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:text="@string/login_btn_text"/>
    <Button android:id="@+id/btnRegister" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:text="@string/reg_btn_text"/>

</LinearLayout>
</RelativeLayout>

Получаю следующее предупреждение:

This LinearLayout layout or its RelativeLayout parent is possibly useless;
transfer the background attribute to the other view

Может кто-нибудь сказать причину этого предупреждения и решение проблемы .?

Ответы [ 4 ]

6 голосов
/ 03 января 2012

Нет реального использования, чтобы иметь только LinearLayout внутри RelativeLayout. Таким образом, один из них бесполезен, поскольку это избыточно.

редактировать

Это предупреждение срабатывает, когда у макета есть только один дочерний элемент, который также является макетом. В этом случае один из обоих может быть удален без каких-либо проблем. Рекомендуется удалить эти избыточные макеты, поскольку они снижают общую производительность пользовательского интерфейса.

2 голосов
/ 06 апреля 2012

Ответ на ваш вопрос, как я только что обнаружил, заключается в отключении новой «помощи» Lint. Я полагаю, это полезно для тех, кто только начинает работать в Android, но для тех, кто знает, что они делают, это просто неприятность. Например, ваша «бесполезная» вложенная линейная компоновка вполне может быть кнопкой внутри дополненной компоновки, которая может ожидать заполнения каким-либо другим элементом во время выполнения (или миллиарда других, вполне допустимых вещей).

В ваших настройках под android / lint просто отключите предупреждения, и вы больше не увидите эти предупреждения.

1 голос
/ 15 мая 2012

Перейдите к

Window -> Preferences -> Android -> Lint Error Checking

Прокрутите и найдите вариант "UselessParent".Измените параметр severity на Ignore.

0 голосов
/ 20 октября 2012

Я получил это сообщение при разработке моего первого приложения для Android.Я напечатал все в точности так, как это было сказано в книге, вплоть до буквы «Т» и дважды все перепроверил.

Полагаю, это как-то связано с книгой, возможно, устаревшей, но ей всего год.

Я думаю, что человек, пишущий книгу, будет знать, что они делают.Это «Полное идиотское руководство по разработке приложений для Android» 2011 года.

Мне известен вариант lint, но в чем причина его использования, даже если он бесполезен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...