我为 an 编写了一个自定义菜单,并将其作为文本选择过程中的自定义ActionMode
传递给了。它可以工作,但是当我单击带有 的项目时,它只会显示它们一秒钟然后关闭并且不要让我选择子菜单项。当我用于我的项目时,当我使用溢出项目时也会发生这种情况。任何的想法?我正在使用 Android ICSTextView.setCustomSelectionActionModeCallback(ActionMode)
ActionMode
SubMenu
ActionMode
MenuItem.SHOW_AS_ACTION_IF_ROOM
问问题
226 次
1 回答
1
我发现动作模式在EditText
失去焦点时关闭/完成:
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
if (mEditor != null) mEditor.onWindowFocusChanged(hasWindowFocus);
startStopMarquee(hasWindowFocus);
}
注:EditText
是 的子类TextView
。
void onWindowFocusChanged(boolean hasWindowFocus) {
if (hasWindowFocus) {
...
} else {
...
hideControllers();
...
}
}
解决方案
我试图创建这个:
package com.edwardsp.sample.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.EditText;
public class CustomEditText extends EditText {
public CustomEditText(Context context) {
super(context);
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
if (hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
}
}
}
并CustomEditText
正常使用EditText
。可以显示动作模式子菜单。我没有在CustomEditText
. 如果有人从这个实现中发现奇怪的行为,请告诉我。
于 2015-05-25T15:16:05.347 回答