kotlin中的片段弹出窗口



我需要弹出窗口来显示我的用户的选项例如,我想添加一个长按按钮,然后当按钮点击时,显示一个带有透明背景的弹出窗口,当在外面点击关闭弹出窗口

完全一样

我已经试了很多方法但不为我工作。

我也不知道如何使用对话框窗口。

无论使用哪一个,dilog fragment或弹出窗口但我需要我的窗口像这样(上面是数据库给出的用户名,然后是选项)

这里是我应该放置弹出窗口的地方:

val mUserAdapter = UserAdapter()
mUserAdapter.setOnclickListener(AdapterListener({
if (it != 0L)
this.findNavController().navigate(
UserListFragmentDirections.actionUserListFragmentToIncreaseMoneyFragment(it)
)
Log.d("TAG", "navTeat $it ")
}, {
deleteDialog(it)
}
) {
Toast.makeText(activity, "Long", Toast.LENGTH_SHORT).show() //Here instead of Toast, I need POPUP WINDOW
})

谢谢:)

1。对话片段

假设你正在使用导航组件,使用

标签,

<dialog
android:id="@+id/navigation_dialog_fragment"
android:name="com.app.example.ui.dialogFragment"
tools:layout="@layout/dialogFragment"/>

覆盖对话片段的onCreate()使背景半透明,

class mDialogFrag: DialogFragment(R.layout.dialog_fragment) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NO_FRAME, R.style.DialogTheme)
//populate UI with data from DB

DialogTheme:

<style name="AppDialogTheme" parent="Theme.AppCompat.Light">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">#40000000</item><!--dialog background-->
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>

2。警告对话框

在你的目标片段,

lateinit var mAlert : AlertDialog
//inflate custom layout
val alertBinding = AlertBinding.inflate(LayoutInflater.from(requireContext()))
alertBinding?.apply{
//populate UI with data from DB
}
val builder = AlertDialog.Builder(requireContext())
mAlert = builder.setView(alertBinding.root)
.setCancelable(false)
.create()
mAlert.window?.setBackgroundDrawable(
ContextCompat.getDrawable(requireContext(),R.drawable.bg_card) //custom dialog background 
)
mAlert.show()

这两种方法都使用自定义布局来实现您的需求。但DialogFragment是为更复杂的UI(即提供更多的控制UI动态)。然而,AlertDialog可以用于更简单的UI,比如你的。

或者您可以使用默认列表,称为传统的单选项列表AlertDialog,像这里这样更简单。

相关内容

  • 没有找到相关文章

最新更新