短视频系统源码,点击选择框,底部弹出可以选择的选项
短视频系统源码,点击选择框,底部弹出可以选择的选项实现的相关代码
导入依赖:
1 | <br>implementation 'com.lxj:xpopup:1.9.0' <br> <br>implementation 'com.contrarywind:Android-PickerView:4.1.9' <br> <br> public class DialogHelper {<br> <br> public static void showConfirmDialog(Context context, String title, CharSequence content,<br> CharSequence cancelText, CharSequence confirmText, OnConfirmListener listener, OnCancelListener cancelListener) {<br> ConfirmDialog confirmDialog = new ConfirmDialog(context)<br> .setCancelText(cancelText)<br> .setConfirmText(confirmText)<br> .setTitleContent(title, content, null)<br> .setListener(listener, cancelListener);<br> new XPopup.Builder(context)<br> .setPopupCallback( new SimpleCallback())<br> .isCenterHorizontal(true)<br> .asCustom(confirmDialog)<br> .show();<br> }<br> <br> public static void showConfirmDialog(Context context, String title, CharSequence content,<br> boolean isHideCancel, OnConfirmListener listener) {<br> ConfirmDialog confirmDialog = new ConfirmDialog(context)<br> .setCancelText(context.getString(R.string.cancel))<br> .setConfirmText(context.getString(R.string.text_sure))<br> .setTitleContent(title, content, null)<br> .setListener(listener, null);<br> if (isHideCancel) confirmDialog.hideCancelBtn();<br> <br> new XPopup.Builder(context)<br> .setPopupCallback( new SimpleCallback())<br> .isCenterHorizontal(true)<br> .asCustom(confirmDialog)<br> .show();<br> }<br> <br> public static void showConfirmDialog2(Context context, String title, CharSequence content, OnConfirmListener listener) {<br> ConfirmDialog confirmDialog = new ConfirmDialog(context)<br> .setCancelText(context.getString(R.string.cancel))<br> .setConfirmText(context.getString(R.string.close_dialog))<br> .setTitleContent(title, content, null)<br> .setListener(listener, null);<br> confirmDialog.hideCancelBtn();<br> <br> new XPopup.Builder(context)<br> .setPopupCallback( new SimpleCallback())<br> .isCenterHorizontal(true)<br> .asCustom(confirmDialog)<br> .show();<br> }<br> <br> public static void showConfirmDialog(Context context, String title, CharSequence content,<br> OnConfirmListener listener, OnCancelListener cancelListener) {<br> ConfirmDialog confirmDialog = new ConfirmDialog(context)<br> .setCancelText(context.getString(R.string.cancel))<br> .setConfirmText(context.getString(R.string.text_sure))<br> .setTitleContent(title, content, null)<br> .setListener(listener, cancelListener);<br> new XPopup.Builder(context)<br> .setPopupCallback( new SimpleCallback())<br> .isCenterHorizontal(true)<br> .asCustom(confirmDialog)<br> .show();<br> }<br> <br> public static BasePopupView showConfirmDialog(Context context, String title, CharSequence content, OnConfirmListener listener) {<br> ConfirmDialog confirmDialog = new ConfirmDialog(context)<br> .setCancelText(context.getString(R.string.cancel))<br> .setConfirmText(context.getString(R.string.text_sure))<br> .setTitleContent(title, content, null)<br> .setListener(listener, null);<br> return new XPopup.Builder(context)<br> .dismissOnTouchOutside(false)<br> .dismissOnBackPressed(false)<br> .setPopupCallback( new SimpleCallback())<br> .asCustom(confirmDialog)<br> .show();<br> }<br> <br> public static void showOptionPicker(Context context, String title, List<String> list, OnOptionsSelectListener listener) {<br> OptionsPickerView<String> pvOptions = new OptionsPickerBuilder(context, listener)<br> .setTitleText(title)<br> .setTitleSize(14)<br> .setSubCalSize(14)<br> .setContentTextSize(16) //设置滚轮文字大小<br> .setDividerColor(Color.LTGRAY)//设置分割线的颜色<br>// .setSelectOptions(0, 1)//默认选中项<br> .setBgColor(Color.WHITE)<br> .setTitleBgColor(Color.WHITE)<br> .setTitleColor(Color.BLACK)<br> .setSubmitColor(Color.rgb(255, 117, 105))<br> .setCancelColor(Color.rgb(153, 153, 153))<br> .setTextColorCenter(Color.BLACK)<br> .setCyclic(false, false, false)<br> .isRestoreItem(false)//切换时是否还原,设置默认选中第一项。<br> .isCenterLabel(true) //是否只显示中间选中项的label文字,false则每项item全部都带有label。<br>// .setBackgroundId(0x00000000) //设置外部遮罩颜色<br> .build();<br> pvOptions.setPicker(list);//一级选择器<br> pvOptions.show();<br> }<br> <br> public static void showOptionPicker(Context context, String title, List<String> list, int option1, OnOptionsSelectListener listener) {<br> OptionsPickerView<String> pvOptions = new OptionsPickerBuilder(context, listener)<br> .setTitleText(title)<br> .setTitleSize(14)<br> .setSubCalSize(12)<br> .setContentTextSize(14)//设置滚轮文字大小<br> .setDividerColor(Color.LTGRAY)//设置分割线的颜色<br> .setSelectOptions(option1)//默认选中项<br> .setBgColor(Color.WHITE)<br> .setTitleBgColor(Color.WHITE)<br> .setTitleColor(Color.BLACK)<br> .setSubmitColor(Color.rgb(255, 117, 105))<br> .setCancelColor(Color.rgb(153, 153, 153))<br> .setTextColorCenter(Color.BLACK)<br> .setCyclic(false, false, false)<br> .isRestoreItem(false)//切换时是否还原,设置默认选中第一项。<br> .isCenterLabel(true) //是否只显示中间选中项的label文字,false则每项item全部都带有label。<br>// .setBackgroundId(0x00000000) //设置外部遮罩颜色<br> .build();<br> pvOptions.setPicker(list);//一级选择器<br> pvOptions.show();<br> }<br> <br> /**<br> * Dialog 模式下,在底部弹出<br> *<br> * @param context<br> * @param title<br> * @param listener<br> */<br> public static void showTimePicker(Context context, String title, OnTimeSelectListener listener) {<br> //系统当前时间<br> Calendar selectedDate = Calendar.getInstance();<br> Calendar startDate = Calendar.getInstance();<br> startDate.set(2000, 0, 1);<br> Calendar endDate = Calendar.getInstance();<br> TimePickerView mTimePickerView;<br> mTimePickerView = new TimePickerBuilder(context, listener)<br> .setDate(selectedDate)<br> .setRangDate(startDate, endDate)<br> .setTitleText(title)<br> .setTitleSize(14)<br> .setSubCalSize(12)<br> .setContentTextSize(14)<br> .setDividerColor(Color.LTGRAY)//设置分割线的颜色<br> .setBgColor(Color.WHITE)<br> .setTitleBgColor(Color.WHITE)<br> .setTitleColor(Color.rgb(51, 51, 51))<br> .setSubmitColor(Color.rgb(255, 117, 105))<br> .setCancelColor(Color.rgb(153, 153, 153))<br> .setTextColorCenter(Color.rgb(51, 51, 51))<br> .setType(new boolean[]{true, true, true, false, false, false})<br> .isCyclic(false)<br> .isDialog(true)<br> .build();<br> Dialog mDialog = mTimePickerView.getDialog();<br> if (mDialog != null) {<br> FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(<br> ViewGroup.LayoutParams.MATCH_PARENT,<br> ViewGroup.LayoutParams.WRAP_CONTENT,<br> Gravity.BOTTOM);<br> <br> params.leftMargin = 0;<br> params.rightMargin = 0;<br> mTimePickerView.getDialogContainerLayout().setLayoutParams(params);<br> Window dialogWindow = mDialog.getWindow();<br> if (dialogWindow != null) {<br> dialogWindow.setWindowAnimations(R.style.picker_view_slide_anim);//修改动画样式<br> dialogWindow.setGravity(Gravity.BOTTOM);//改成Bottom,底部显示<br> }<br> }<br> mTimePickerView.show();<br> }<br> <br> <br> public static void showPasswordDialog(Context mContext, String title, String content, String inputContent, String hint, OnInputConfirmListener listener) {<br> <br> new XPopup.Builder(mContext)<br> //.dismissOnBackPressed(false)<br> .autoOpenSoftInput(true)<br>// .autoFocusEditText(false) //是否让弹窗内的EditText自动获取焦点,默认是true<br> .isRequestFocus(false)<br> .isCenterHorizontal(true)<br> //.moveUpToKeyboard(false) //是否移动到软键盘上面,默认为true<br> .asInputConfirm(title, content, inputContent, hint, listener)<br> .bindLayout(R.layout.dialog_password_confirm)<br> .show();<br> }<br> <br> <br>} |
使用:
1 | <br>showConfirmDialog( "系统提示" , "确定退出吗?" , this::finish);<br> <br> <br>showConfirmDialog( "系统提示" , "确定退出吗?" , ()->{});<br> <br> <br>List<String> productName = new ArrayList<>();<br>DialogHelper.showOptionPicker(mActivity, "列表选择" , productName, new OnOptionsSelectListener() {<br> @Override<br> public void onOptionsSelect(int options1, int options2, int options3, View v) {<br> <br> }<br> }); |
以上就是短视频系统源码,点击选择框,底部弹出可以选择的选项实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现