menu

메뉴 아이템에 android:icon 이거랑 app:showAsAction 이 값을 주면 액션바에 아이콘이 나타난다. 이 때 아이콘을 롱터치하면 토스트가 화면 아래쪽 가운데 정렬이 아닌, 아이콘 바로 아래에, 아이콘 가운데에서 왼쪽으로 뻗치는 정렬이 되서 나타난다.

그림으로 표현하면 아래처럼 보이겠지?

Toast

#1: 일반적인 상황

Toast

#2: 액션바의 노란 아이콘을 터치

이거를 액션바 아이콘 말고 다른 뷰를 눌러도 나오도록 메소드를 만듦.

private void Toast_ActionBar(View view, String string) {
    int[] location = new int[2];
    view.getLocationOnScreen(location);
    Point windowSize = new Point();
    getWindowManager().getDefaultDisplay().getSize(windowSize);
    Toast t = Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT);
    t.setGravity(
            Gravity.TOP | Gravity.RIGHT,
            windowSize.x - location[0] - view.getWidth() / 2,
            location[1] + view.getHeight() / 2
    ); 
    t.show();
}

뷰의 절대 위치, 뷰의 크기, 그리고 스크린의 크기를 조합해서 토스트가 쀼려질 위치를 결정함.

이렇게 해서 롱터치 했을 때 나오는 설명은 바로 아래에 토스트로 나오게 만들고, 나머지 알림은 모두 스낵바로 바꿈.

끝.

퍼가지 말고, 링크로 공유하세요. 자세한 건 공지에.

안녕하세요
반가워요
환영합니다 ^_<~*

test 3-1

test 3-2

test 3-3

test 4-1

test 4-2

test 4-3

모든 글 보기
공지
방명록
Share to...

페이스북 공유

트위터 공유

구글+ 공유

카카오스토리 공유

밴드 공유

Follow & Contact

Facebook

Twitter

Mail

RSS 구독

2007-2016 © JinH