我正在使用文本编辑器。如何在点击Spinner时不会丢失文本选择?
我有一个EditText
小部件,其中输入文本,并在下面用各种格式化小部件(如按钮和Spinner
)输入一行。
用户可以选择文本,然后按下按钮来打开和关闭粗体,斜体和其他格式化选项,这可以毫无困难地工作。
但是,对于用户可以在运行Android 4.1或运行4.2.2的Nexus 4/7/10的Asus平板电脑上选择颜色或字体等东西的Spinner
,文本选择会尽快消失点击Spinner
。
在Samsung Galaxy SII上,此行为不会发生。选择在整个与Spinner
的互动中保持不变。 (它运行Android 4.0.4,我不确定这个问题是否与Android版本相关,或者由于三星采取了不同的做法)。
我想在每台设备上都有三星的行为。我如何确保这是默认行为?
在运行4.0.3的模拟器上测试之后,似乎标准Android失去了焦点。所以不知何故,三星在默认行为方面有一些差异,我想在其他设备上进行复制。 – Michel 2013-03-04 23:12:10
运行调试程序显示,通过长时间的调用堆栈,正在调用onWindowsFocusChanged,可能会将焦点置于微调器弹出对话框,并调用Editor onDestroyActionMode(ActionMode模式),最终删除文本选择。所以也许我需要设置一个自定义动作模式来避免这个问题,或者在调用超级版本并将其恢复之前将选择保存在onWindowsFocusChanged中,但我不确定这种方法可能会产生什么样的负面影响...... – Michel 2013-03-04 23:57:46
覆盖这些钩子来保存和恢复选择状态似乎是对我来说合理的解决方案。 – FoamyGuy 2013-03-05 01:56:41