Используйте View.isInEditMode() в ваших пользовательских представлениях с CordovaWebView

Я разрабатываю приложение с CordovaWebView, и я добавил следующий код в файл web_view.xml.

<org.apache.cordova.CordovaWebView
        android:id="@+id/cordovaWebView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

Я реализовал методы из CordovaInterface. Теперь моя страница дизайна показывает следующее сообщение об ошибке.

Совет: используйте View.isInEditMode() в пользовательских представлениях, чтобы пропустить код при отображении в Eclipse

Может кто-нибудь сказать, пожалуйста, как это решить?

1 ответ

isInEditMode()должен использоваться внутри конструктора Custom View. Попробуйте следующий код:

public class GraphView extends View implements Grapher
    {

     public GraphView(Context context, AttributeSet attrs) {
            super(context, attrs);
            if(!isInEditMode())
             init(context);
        }

        public GraphView(Context context) {
            super(context);
           if(!isInEditMode()){
            touchHandler = new TouchHandler(this);
            init(context);
          }
        }

Замените GraphView вашим CordovaWebview.

View.isInEditMode ()

Указывает, находится ли данный вид в данный момент в режиме редактирования. Представление обычно находится в режиме редактирования при отображении в инструменте разработчика. Например, если это представление рисуется визуальным конструктором пользовательского интерфейса, этот метод должен возвращать true. Подклассы должны проверять возвращаемое значение этого метода, чтобы обеспечить различное поведение, если их нормальное поведение может мешать среде хоста. Например: класс порождает поток в своем конструкторе, код рисования опирается на специфичные для устройства функции и т. Д. Этот метод обычно проверяется в коде рисования пользовательских виджетов.

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