3

我在我的片段中使用ShowCase View library。我顯示一個應該重複的手勢動畫,直到用戶按下OK按鈕。但只顯示一次。Android:ShowCase查看只顯示一次並重復動畫

此外,每次創建碎片時都會顯示展示區,而不僅僅是一次。

我的代碼如下所示:

public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     //get display size for slide over screen 
     Display display = getActivity().getWindowManager().getDefaultDisplay(); 
     Point p = new Point(); 
     display.getSize(p); 

     if(!is_tablet()){ 
      // ShowView Tutorial if on smartphone 
      ViewTarget target = new ViewTarget(getView()); 
      ShowcaseView.ConfigOptions co = new ShowcaseView.ConfigOptions(); 
      //can only dismiss by button click 
      co.hideOnClickOutside = false; 
      //show only once 
      co.shotType = ShowcaseView.TYPE_ONE_SHOT; 
      sv = ShowcaseView.insertShowcaseView(target, getActivity(), 
        R.string.showcase_detail_title, R.string.showcase_detail_message,co); 
      // remove circle 
      sv.setShowcaseIndicatorScale(0); 
      // set black background 
      sv.setBackgroundColor(getResources().getColor(R.color.black)); 
      // make background a bit transparent 
      sv.setAlpha(0.9f); 
      // show PullToRefreshGesture 
      sv.animateGesture(0, p.y/2, p.x, p.y/2); 
     } 

所使用的佈局:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<mypackage.PullToRefresh.PullToRefreshListView 
android:id="@id/android:list" 
android:layout_height="match_parent" 
android:layout_width="match_parent" 
android:divider="@android:color/transparent" 
android:dividerHeight="10dp" 
android:layout_margin="10dp"/> 

</LinearLayout> 
+0

你能發佈你的佈局嗎? – Umitk

回答

6

我解決這樣說:

  1. 要我跟着this post安裝後只有一次執行它。
  2. 要重複動畫,我使用了this post中提供的代碼。

現在,ShowcaseView只會在安裝後出現一次,並且只要未單擊該按鈕就會顯示手勢動畫。

+0

非常感謝你:) – semih

0

要與次重複動畫:

sv.setRepeatCount(number); 

對於無限:

sv.setRepeatCount(Animation.INFINITE); 
sv.setRepeatMode(Animation.INFINITE); 

,並在佈局:

android:repeatMode="reverse" 
+0

我將佈局添加到原始帖子。如果我嘗試添加行sv.setRepeatCount(Animation.INFINITE);'它說'setRepeatCount()未定義類型ShowCase視圖' –

2
/** 
    * Set the ShowcaseView to only ever show once. 
    * 
    * @param shotId a unique identifier (<em>across the app</em>) to store 
    *    whether this ShowcaseView has been shown. 
    */ 
    public Builder singleShot(long shotId) { 
     showcaseView.setSingleShot(shotId); 
     return this; 
    }