LinearLayout - ошибка Lint при использовании файла стиля (все еще работает, хотя)
Проблема: я получаю ошибку lint и предупреждение о стилях, которые работают, при определении ориентации LinearLayout в файле стилей, но не при определении ориентации непосредственно на элементе. Даже если свойство выбрано из файла стилей.
У меня есть базовый стиль для всех моих действий, содержащий следующее:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="StandardActivity">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:orientation">vertical</item>
</style>
</resources>
В моем макете, если я добавлю этот код:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/StandardActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
...
</LinearLayout>
...
</LinearLayout>
На layout_width
Я получаю предупреждение Lint:
Use a 'layout_width' of '0dp' instead of 'fill_parent' for better performance
И на layout_height
Я получаю ошибку Lint:
Suspicious size: this will make the view invisible, probably intended for 'layout_width'
Все работает, как ожидалось, и макет занимает orientation
атрибут установлен в StandardActivity
, Однако ошибка и предупреждение действительны только в том случае, если ориентация установлена на horizontal
, Как я могу получить пух в Android Studio, чтобы понять, что ориентация установлена в файле стиля?
Если явно добавить ориентацию непосредственно в LinearLayout, ошибка лининга и предупреждение исчезнут.
1 ответ
Там нет проблемы, IDE, вероятно, позади. Это предположение сделано, что layout_orientation
является horizontal
в этом случае эти ошибки будут правильными. Но, как вы сделали layout_orientation=vertical
в style
Все отлично. Если вы перенесете эти переменные прямо в макет, эти ошибки должны исчезнуть. PS fill_parent
устарела, использовать match_parent
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
...
</LinearLayout>
...
</LinearLayout>