2013-08-03 2 views
1

ActionMode에 대한 사용자 정의 메뉴를 작성한 후 텍스트 선택 프로세스에서 사용자 정의 TextView.setCustomSelectionActionModeCallback(ActionMode)으로 전달했습니다. 작동하지만, SubMenu이 표시된 항목을 클릭하면 잠시 표시된 후 ActionMode이 닫히고 하위 메뉴 항목을 선택할 수 없습니다. 그것은 또한 내 테마에 대해 MenuItem.SHOW_AS_ACTION_IF_ROOM을 사용할 때 오버플로 항목을 사용할 때도 발생합니다. 아이디어가 있습니까? 내가 사용 안드로이드 ICSTextView ActionMode SubMenu를 제대로 표시 할 수 없음

+0

해결할 수 있었습니까? –

+0

두려워하지 않습니다 ... –

답변

1

은 내가 EditText이 초점을 잃었을 때 동작 모드/완료 닫혀 있는지 발견

TextView.java

@Override 
public void onWindowFocusChanged(boolean hasWindowFocus) { 
    super.onWindowFocusChanged(hasWindowFocus); 

    if (mEditor != null) mEditor.onWindowFocusChanged(hasWindowFocus); 

    startStopMarquee(hasWindowFocus); 
} 

참고 : EditTextTextView의 서브 클래스입니다.

Editor.java

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); 
     } 
    } 
} 

정상 EditTextCustomEditText를 사용합니다. 동작 모드 하위 메뉴가 표시 될 수 있습니다. 나는 CustomEditText에서 이상한 행동을 찾지 못했습니다. 누군가이 구현에서 이상한 동작을 발견하면 알려 주시기 바랍니다.