android - 如何在单击上传按钮时显示带有标题选择和选项相机、画廊和取消的对话框或操作表?
问题描述
我不知道如何在单击上传按钮时显示以下对话框。
var image = findViewById<ImageView>(R.id.image)
var uploadBtn = findViewById<Button>(R.id.uploadBtn)
uploadBtn.setOnClickListener {
// how can I display dialogue or action sheet box on this click listener
}
解决方案
下面的函数用于显示 BottomSheet 并创建您的自定义布局并传入 inflate(Here)
private fun showBottomSheetDialog() {
val view = layoutInflater.inflate(R.layout.your_sheet_layout, null)
val dialog = BottomSheetDialog(this)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
dialog.setCancelable(true)
dialog.setContentView(view)
view.textViewcamer.setOnClickListener {
Toast.makeText(this, "Camera", Toast.LENGTH_SHORT).show()
}
view.textViewGallery.setOnClickListener {
Toast.makeText(this, "Gallery", Toast.LENGTH_SHORT).show()
}
view.textViewCancel.setOnClickListener {
Toast.makeText(this, "Cancel", Toast.LENGTH_SHORT).show()
}
dialog.show()
}
推荐阅读
- sql-server - 需要帮助让 Microsoft 本地网关与 Azure 分析服务一起使用
- html - 如何使悬停覆盖文本固定到图像
- laravel-5 - 为 Laravel 网站延迟 JS 脚本的最简单方法是什么?
- php - 使用 file_get_content php 获取搜索结果的内容
- c# - 字节溢出评估为零而不是异常?
- php - 如何从 PHP 7.2 降级到 PHP 5.6 EC2 linux
- android - 'android.disableResourceValidation=true' 是实验性的,在本机反应中不受支持
- c++ - 迭代器的引用参数错误的 C++ 函数。寻求解释
- angular - 如何将现有的 NativeScript Angular 项目转换为代码共享项目
- angular - 为什么我可以在没有订阅的情况下使用 Observable?