TextView ActionMode无法正确显示SubMenu

时间:2013-08-03 10:04:33

标签: android menu android-actionmode

我为ActionMode编写了一个自定义菜单,并在文本选择过程中将其作为自定义TextView.setCustomSelectionActionModeCallback(ActionMode)传递给ActionMode。它有效,但是当我点击带有SubMenu的项目时,它会显示它们一秒钟然后ActionMode关闭,并且不允许我选择子菜单项。当我使用MenuItem.SHOW_AS_ACTION_IF_ROOM作为我的主题时,我也会使用溢出项目。 任何的想法? 我正在使用Android ICS

1 个答案:

答案 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中没有发现奇怪的行为。如果有人从这个实现中发现了奇怪的行为,请告诉我。