Android/Android UI

안드로이드 action mode

최데브 2022. 1. 11. 22:16

안드로이드에서 Text를 Select 즉 드래그 했을때 나오는 툴들을 변경하고 싶을때가 있다.

 

예를 들면,

 

이런식으로, Important를 꾹~ 눌려서 (Long press) Text를 Select한 뒤에 나오는 메뉴에서

'퀵번역'을 추가 하고 싶을 수 있다.

 

이런걸 구현하려고 하면 간단하게 함수 하나만 override하면 된다.

    @Override
    public void onActionModeStarted(final android.view.ActionMode mode) {
        Menu menu = mode.getMenu();
        menu.add("퀵번역")
                .setEnabled(true)
                .setVisible(true)
                .setOnMenuItemClickListener(item -> {
                    //해당 메뉴를 눌렸을 때 수행할 작업
                    return true;
                });
        super.onActionModeStarted(mode);
    }

이렇게 onActionModeStarted를 Override하고

Menu를 얻어온 다음, 

menu.add()를 이용해서 새로운 메뉴를 추가하면 된다.

 

이렇게 하면 기존 메뉴에 있는 기능들도 그대로 쓸 수 있고 

내가 넣고싶은 기능을 추가할 수도 있다.

 

이때 새로운 메뉴의 위치는 젤 왼쪽이 되는데, 그 위치또한 설정 가능하다.

 

반응형