[英]How to display ShowCase on Alert Dialog (Android)
我使用了庫com.github.mreram: showcaseview: 1.1
。
當我想在警報上顯示展示櫃時,它會在警報后面顯示展示櫃。
我幾乎使用了所有ShowCases,但是它們都有相同的問題。
private GuideView ShowCaseView;
private GuideView.Builder ShowCaseBuilder;
private Alert Alert;
@oClick(R.id.bTest)
public void onClick() {
Alert = new Alert(this);
Alert.ShowAlert();
ImageView imgCancel = ButterKnife.findById(Alert, R.id.imgAlertTitle);
ShowCaseBuilder = new GuideView.Builder(this)
.setTitle("Test")
.setContentText("Test")
.setTargetView(imgCancel)
.setContentTypeFace(AppController.Iran)
.setTitleTypeFace(AppController.IranBold)
.setDismissType(DismissType.anywhere)
.setGuideListener(new GuideListener() {
@Override
public void onDismiss(View view) {
return;
}
});
ShowCaseView = ShowCaseBuilder.build();
if (!ShowCaseView.isShowing())
ShowCaseView.show();
}
結果看起來像這樣 在這里輸入圖像描述
您需要首先創建自己的自定義Dialor Alert。 然后在其中包含展示代碼。 如何制作CustomDialogAlert的示例:
https://abhiandroid.com/ui/custom-alert-dialog-example-android-studio.html
或嘗試制作類似的課程:
public class ViewDialog {
public void showDialog(Activity activity, String msg){
final Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.custom_dialogbox_otp);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
TextView text = (TextView) dialog.findViewById(R.id.txt_file_path);
text.setText(msg);
Button dialogBtn_cancel = (Button) dialog.findViewById(R.id.btn_cancel);
dialogBtn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
Button dialogBtn_okay = (Button) dialog.findViewById(R.id.btn_okay);
dialogBtn_okay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.cancel();
}
});
ShowCaseBuilder = new GuideView.Builder(this)
.setTitle("Test")
.setContentText("Test")
.setTargetView(imgCancel)
.setContentTypeFace(AppController.Iran)
.setTitleTypeFace(AppController.IranBold)
.setDismissType(DismissType.anywhere)
.setGuideListener(new GuideListener() {
@Override
public void onDismiss(View view) {
return;
}
});
MyShowCaseView = ShowCaseBuilder.build();
if (!ShowCaseView.isShowing())
ShowCaseView.show();
dialog.show();
}
}
另外,由於@MikeM指出的問題,您需要創建一個類,該類擴展GuideView並覆蓋顯示,以便在show()中將視圖添加到正確的位置
public void show() {
this.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
this.setClickable(false);
((ViewGroup) ((Activity) getContext()).getWindow().getDecorView()).addView(this);
AlphaAnimation startAnimation = new AlphaAnimation(0.0f, 1.0f);
startAnimation.setDuration(APPEARING_ANIMATION_DURATION);
startAnimation.setFillAfter(true);
this.startAnimation(startAnimation);
mIsShowing = true;
}
我嘗試了完整的MyGuideView:
我做:
ShowCaseView = new showCaseBuilder.build()
ShowCaseView.setLayout(parentView)
if (!ShowCaseView.isShowing())
ShowCaseView.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.