花式展示柜视图

Fancy Show Case View

我想在我的应用程序中制作展示案例视图,在第一个展示页面我想显示确认页面,有两个按钮是否可以,如果可以则继续下一个展示案例,如果没有将删除/隐藏展示.但是我的确定按钮现在不起作用,这是我的代码:

 // -------- First Show case ---------
 private void ShowCaseIntro(){
 mFancyShowCaseView = new FancyShowCaseView.Builder(this)
         .delay(1000)
         .customView(R.layout.tutorial, new OnViewInflateListener() {
             @Override
             public void onViewInflated(@NonNull View view) {

                 view.findViewById(R.id.btnNo).setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         mFancyShowCaseView.removeView();
                     }
                 });
                 view.findViewById(R.id.btnOK).setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         ShowCaseEditProfile();
                     }
                 });
             }
         }).closeOnTouch(false)
         .build();
 mFancyShowCaseView.show();
}

     // -------- Second Show case ---------
private void ShowCaseEditProfile (){
    mFancyShowCaseView = new FancyShowCaseView.Builder(this)
            .focusOn(imgEdit)
            .focusCircleRadiusFactor(2)
            .customView(R.layout.edit_tutorial, new OnViewInflateListener() {
                @Override
                public void onViewInflated(@NonNull View view) {
                    view.findViewById(R.id.btnOK).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            mFancyShowCaseView.hide();
                        }
                    });
                }
            }).closeOnTouch(false)
            .build();
    mFancyShowCaseView.show();

}

这里是我调用方法 ShowCaseIntro() 的地方:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.activity_main);
    setDefaultToolbar(false);
    ShowCaseIntro();

}

这是按钮 xml 文件:

 <Button
            android:id="@+id/btnNo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="5dp"
            android:text="Tidak"
            android:textAllCaps="false"
            android:textColor="@color/colorPrimary" />

        <Button
            android:id="@+id/btnOK"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toEndOf="@+id/btnNo"
            android:backgroundTint="@color/orange"
            android:text="OK !"
            android:textAllCaps="false"
            android:textColor="@color/white" />

当您调用 ShowCaseEditProfile() 时,您的 mFancyShowCaseView 已经连接,因此在调用 ShowCaseEditProfile() 之前调用 mFancyShowCaseView.removeView();

private void ShowCaseIntro(){
    mFancyShowCaseView = new FancyShowCaseView.Builder(this)
            .delay(1000)
            .customView(R.layout.tutorial, new OnViewInflateListener() {
                @Override
                public void onViewInflated(@NonNull View view) {

                    view.findViewById(R.id.btnNo).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            mFancyShowCaseView.removeView();
                        }
                    });
                    view.findViewById(R.id.btnOK).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            //add this line
                            mFancyShowCaseView.removeView();
                            ShowCaseEditProfile();
                        }
                    });
                }
            }).closeOnTouch(false)
            .build();
    mFancyShowCaseView.show();
}