我在我的应用程序中使用 Actionbar 下拉导航列表(模式ActionBar.NAVIGATION_MODE_LIST)。
我正在尝试在选择其中一个项目时启动一个对话框。使用回调来获取位置并可以显示对话框。
public boolean onNavigationItemSelected(int position, long id) {
}
但是当用户没有在对话框上选择任何操作,或者关闭它,或者用户再次选择下拉菜单并选择相同的项目时,我需要再次显示对话框。但是如果再次选择相同的项目,则不会触发“ onNavigationItemSelected ”。一个
我已经实现了一个自定义 SpinnerAdapter 并被覆盖,'getView'(相应项目的标题)和 getDropDownView'(下拉项目)。我可以更改标题,但我想在每次从下拉菜单中选择特定项目时启动对话框下。
'Moves'流行的应用程序使用了类似的方法。启动屏幕在操作栏上有微调器,带有三个选项“今天”“昨天”“特定日期”。每次选择“特定日期”项目时,该应用程序都可以启动(日期选择器对话框)。我正在尝试实现确切的 UI 模式。无法获得如何实现它的线索。
我确实尝试为特定的下拉项设置 onClick 侦听器。这有点奏效。但是在单击设置了 onClick 事件的项目后,下拉菜单没有被关闭。
由于我们吸收了点击事件,因此框架也不会为该特定项目执行背景状态更改。
在“移动”应用程序上需要注意的一点是,一旦选择了“特定日期”,它不会将所选项目设置为第三个选项,导航仍保留在上一个所选项目上,仅显示日期选择器对话框。
我尝试实现 onTouch Listener 并基本上吸收点击事件,一旦发生第一个触摸事件(ACTION_DOWN)就启动对话框。单击后它确实关闭了下拉菜单并显示了背景状态更改。但这并不能带来良好的用户体验,因为我们需要在用户完成点击操作时才启动对话框。
holder.title.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
showTimePickerDialog();
return false;
}
}
想知道移动应用程序会如何做。任何见解如何实现这种行为。?