仿IPhone从底部弹出选项菜单
2018-07-20 来源:open-open
项目中开发需要,就是在点击某个控件(如头像ImageView)时要求弹出一个操作的选项菜单(对话框),效果就是像IPhone的一样,从手机屏幕底部往上弹出的,做了个简单的效果工具类,写下来方便下次使用。
首先我们要定义弹出的对话框样式:
ublic static Dialog createShowAlert(final Context context, int layoutId) {/**方法中要传入建立对话框的Layout*/
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(layoutId, null);
final int cFullFillWidth = 10000;
layout.setMinimumWidth(cFullFillWidth);
/** R.style.My_Dialog_Style为项目中正定义的样式*/
final Dialog dlg = new Dialog(context, R.style.My_Dialog_Style);
Window w = dlg.getWindow();
WindowManager.LayoutParams lp = w.getAttributes();
lp.x = 0;
final int cMakeBottom = -1000;
lp.y = cMakeBottom;
lp.gravity = Gravity.BOTTOM;//**此处改变显示位置*/
dlg.onWindowAttributesChanged(lp);
dlg.setCanceledOnTouchOutside(true);
dlg.setContentView(layout);
return dlg;
}
/*********在需要创建对话框的地方调用上面方法就可以**********************************/
public static final Dialog showConfirmAlert(final Context context, int titleStrId, int itemStrId, int itemColorId, View.OnClickListener onClick) {
final Dialog dlg = createShowAlert(context, R.layout.my_dialog);/**调用上面的方法*/
TextView titleView = (TextView) dlg.findViewById(R.id.textview1);
titleView.setText(titleStrId);
TextView itemView = (TextView) dlg.findViewById(R.id.textview2);
itemView.setText(itemStrId);
itemView.setTextColor(context.getResources().getColor(onClick));
itemView.setOnClickListener(onClick);
dlg.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dlg.dismiss();
}
});
return dlg;
}
这样就可以创建一个对话框了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:Android判断是否是平板
下一篇:C语言实现堆排序代码
最新资讯
热门推荐