2016-08-08 2 views
0

Я использую this отличную библиотеку. Это мне очень помогает. Но у меня возникли проблемы с MenuItem, если showAsAction установлен на ifRoom|collapseActionView. Округленное отверстие не появится. Появился только оверлейный фон и текст. PS: Я хочу сделать showcaseview на searchView. У меня есть кнопка поиска в верхнем правом углу, кроме нее есть пункт меню, который имеет значение showAsAction, установленное как никогда. Если щелкнуть searchView, элемент меню изменится на пункт меню фильтра.MaterialShowCaseView на MenuItem Android не работает, если установлено значение ifRoom | collapseActionView

mSequence.addSequenceItem(new MaterialShowcaseView.Builder(getActivity()) 
     .setTarget(searchView) 
     .setContentText(R.string.help_deals) 
     .setDismissOnTouch(true) 
     .build());' 

Есть ли какие-либо решения этой проблемы?

ответ

0

Вы должны поместить библиотеку внутри (например, модуль с именем пакета: uk.co.deanwild.materialshowcaseview) в проект приложения. Для того, чтобы указать зависимость модуля просто:

  1. правой кнопкой мыши на APPLICATION-> Открыть настройки модуля
  2. Нажмите на иконку
  3. «+» Выберите корневой каталог для модуля библиотеки вы хотите добавить.
  4. Следуйте подсказкам

Затем этот модуль будет отображаться в вашем проекте. Затем вам нужно добавить его в приложение в качестве зависимости от библиотеки. Опять же, в модуле настройки:

  1. Выберите ваш модуль Application
  2. Выберите вкладку Зависимости на правой
  3. Нажмите на значок «+» в нижней
  4. Выбор модуля Завис
  5. Выберите ваш желаемый библиотечный модуль

затем перейдите к MaterialShowcaseView $ Builder.java и добавьте это:

public Builder setTarget(Target target) { 
     showcaseView.setTarget(target); 
     return this; 
} 

наконец ... в MainActivity или ваш фрагмент создайте целевой класс

Target mTarget = new Target() { 
     @Override 
     public Rect getBounds() { 
      Point p = getPoint(); 
      return new Rect(p.x - 190, p.y - 190, p.x + 190, p.y + 190); 
     } 

     @Override 
     public Point getPoint() { 
      // Get approximate position of actions items 
      int height = toolbar.getHeight(); 
      int width = toolbar.getWidth(); 
      int x = height/2; 
      int y = height/2; 
      width -= x; 
      return new Point(width, y); 
     } 
    };new MaterialShowcaseView.Builder(getActivity()) 
      .setTarget(mTarget) 
      .setDismissText("GOT IT") 
      .setContentText("Text content") 
      .setDelay(275) // optional but starting animations immediately in onCreate can make them choppy 
      .singleUse("ID_OF_SHOWCASE")// provide a unique ID used to ensure it is only shown once 
      .show(); 
+0

Здравствуйте @Herberth Obregon Спасибо за ваш ответ. Я его не тестировал. Как насчет вложенного scrollview? Когда у меня есть элемент, он находится ниже некоторых элементов и вы хотите автоматически прокручивать элемент выделения. Как правильно это сделать? благодаря –