Создание пустого Drawable в Android - PullRequest
39 голосов
/ 10 февраля 2010

Создание Drawable, которое является полностью пустым, кажется обычной потребностью, в качестве заполнителя, начального состояния и т. Д., Но, кажется, нет хорошего способа сделать это ... по крайней мере, в XML. Несколько мест относятся к системному ресурсу @android:drawable/empty, но, насколько я могу судить (т. Е. Его нет в справочных документах, и aapt задыхается, говоря, что он не может найти ресурс), этого не существует.

Есть ли общий способ ссылки на пустой Drawable, или вы в конечном итоге создали поддельный пустой PNG для каждого проекта?

Ответы [ 7 ]

97 голосов
/ 05 июля 2010

Для меня это не сработало, когда я пытался использовать @android:id/empty при создании пустого элемента. Для меня @android:color/transparent был один.

9 голосов
/ 22 января 2014

Я использую пустой ShapeDrawable, то есть создаю свой собственный drawable / empty.xml, содержащий только <shape/>

5 голосов
/ 03 февраля 2015
<shape />

создает пустую форму и помогает мне. Или создайте файл empty_drawable.xml, содержащий:

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

так что вы можете использовать его в другом месте.

Вы также можете сделать так, чтобы фигура исчезла, когда представление, в котором она используется, не включено, создав my_disablable_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true">
        <shape android:shape="oval">
            <size android:height="10dp" android:width="10dp" />
            <solid android:color="@android:color/white" />
        </shape>
    </item>
    <item android:state_enabled="false">
        <shape />
    </item>
</selector> 
4 голосов
/ 16 августа 2010

Для меня, использование @android: drawable / empty покажет ошибку и предотвратит компиляцию. Использование @android: id / empty исправило ошибку и позволило мне скомпилировать, но в редакторе макета Eclipse показало «NullPointerException: null» Я изменил его на @android: цвет / прозрачный, и теперь все в порядке.

Я не могу проголосовать еще, иначе я бы ответил на вопрос Эмиля.

3 голосов
/ 07 августа 2018

Используйте @android:color/transparent и не забудьте добавить android:constantSize="true" на <selector>

3 голосов
/ 22 января 2014

@null в XML имеет тот же эффект, что и null в Drawable в Java.

2 голосов
/ 10 апреля 2010

Кай, я не знаю, почему это так, но у меня возникла та же проблема. Я думаю, это может быть связано с версией Android, для которой вы компилируете? В любом случае я обнаружил, что просто используя @android: id / empty, где вы бы использовали @android: drawable / empty, добьется цели.

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