我在片段中使用ShowCase View library。我展示了一个手势动画,应该重复,直到用户按下OK按钮。但只展示一次。
每次创建片段时都会显示展示,而不仅仅是一次。
我的代码如下所示:
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 :(得分:6)
我这样解决了:
答案 1 :(得分: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;
}
答案 2 :(得分:0)
用时间重复动画:
sv.setRepeatCount(number);
无限:
sv.setRepeatCount(Animation.INFINITE);
sv.setRepeatMode(Animation.INFINITE);
并在你的布局中:
android:repeatMode="reverse"