我为ActionMode
编写了一个自定义菜单,并在文本选择过程中将其作为自定义TextView.setCustomSelectionActionModeCallback(ActionMode)
传递给ActionMode
。它有效,但是当我点击带有SubMenu
的项目时,它会显示它们一秒钟然后ActionMode
关闭,并且不允许我选择子菜单项。当我使用MenuItem.SHOW_AS_ACTION_IF_ROOM
作为我的主题时,我也会使用溢出项目。
任何的想法?
我正在使用Android ICS
答案 0 :(得分:1)
我发现当pip
失去焦点时,动作模式已关闭/结束:
<强> TextView.java
强>
EditText
注意:@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
if (mEditor != null) mEditor.onWindowFocusChanged(hasWindowFocus);
startStopMarquee(hasWindowFocus);
}
是EditText
的子类。
<强> Editor.java
强>
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
中没有发现奇怪的行为。如果有人从这个实现中发现了奇怪的行为,请告诉我。