2013-07-24 1 views
3

Я использую отличный ShowcaseView library в моем проекте. Наряду с этим я также использую этот класс классной оболочки ShowcaseViewExample, чтобы отображать просмотры один за другим.ShowcaseView с жестами

Это отлично работает, но я потерял, как использовать жесты.

код до сих пор:

public void showcaseMainActivity() { 
      views = new ShowcaseViews(this, R.layout.showcase_view_template); 
      views.addView(new ShowcaseViews.ItemViewProperties(R.id.some_menu, R.string.showcase_title, R.string.showcase_message, ShowcaseView.ITEM_ACTION_ITEM)); 
      views.addView(new ShowcaseViews.ViewProperties(R.id.showcaseButton, R.string.showcase_title, R.string.showcase_message)); 
      views.show(); 
     } 

Где добавить код, чтобы использовать жесты для showcaseButton?

ответ

3

Я не один, чтобы ответить на ваш вопрос, я больше из тех пользователей, которые должны были сделать это в том, что, как я подозреваю, ошибочно.

До сих пор я сосредоточился только на том, чтобы сделать работу жестов. Я не знаю, как выбрать размер кругов.

Я хотел использовать его так же, как и вы, но это меня не достало, потому что я не узнал, куда положить жест в в строке, где я добавил представление. Поэтому я сделал это по-своему.

Как это:

Сначала я определил showcaseview:

Fragment thisFrag; 
ShowcaseView sv; 
ShowcaseView.ConfigOptions co; 

И в моем OnCreate у меня есть это:

co = new ShowcaseView.ConfigOptions(); 
thisFrag = this; 

Тогда я назвал эту функцию, когда я хотел витрину в следует рассматривать:

public static void showShowcase() { 
    // TODO Auto-generated method stub 

    co.hideOnClickOutside = false; 
    co.showcaseId = 1; 
    sv = ShowcaseView.insertShowcaseView(R.id.scrollView1, thisFrag.getActivity(), "Some funny text", " Smaller and funnier text ", co); 
    sv.animateGesture(200, 500, 200, 0); 

    OnShowcaseEventListener OSEvListner = new OnShowcaseEventListener() { 
     public void onShowcaseViewHide(ShowcaseView showcaseView) { 
      switch (co.showcaseId) { 
      case 1: 
       co.showcaseId = 2; 
       sv = ShowcaseView.insertShowcaseView(R.id.scrollView2, thisFrag.getActivity(), "How to scroll down", " ", co); 
       sv.setOnShowcaseEventListener(this); 
       sv.animateGesture(200, 500, 200, 0); 
       break; 
      case 2: 
       co.showcaseId = 3; 
       sv = ShowcaseView.insertShowcaseView(R.id.scrollView3, thisFrag.getActivity(), 
         "Do this to change tabs", "", co); 
       sv.setOnShowcaseEventListener(this); 
       sv.animateGesture(200, 500, 500, 500); 
       break; 
      case 3: 
       Main.switchTab(1); 
       OtherFragment.showShowcase(); 
     } 
     } 

     @Override 
     public void onShowcaseViewShow(ShowcaseView showcaseView) { 
      // TODO Auto-generated method stub 

     } 
    }; 

    sv.setOnShowcaseEventListener(OSEvListner); 


} 

Надеюсь, что это лучший способ сделать это.

2

Используйте метод overrideButtonClick в следующем примере:

ShowcaseView showcaseView = ShowcaseView.insertShowcaseView(new ViewTarget(yourView), activity, "this is title", "this is detail"); 

showcaseView.overrideButtonClick(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        //your onClick code 
       } 
});