이것은 의도 한 행동으로 생각됩니다. 그 너머 욕망을 달성하기위한 직접적인 방법이 없습니다. Material Design Guidelines 토스트는 주로 시스템 메시지를 전달하는 데 사용되며 화면 하단에 나타납니다.
내 생각 엔 시스템 메시지는 전체 장치에 관련된, 반드시 응용 프로그램에 국한되지 않는, 그래서이 일관된 동작 말이해야 할 것이다. 즉, 토스트가 응용 프로그램 중 하나에서 화면의 실제 25 %를 차지하기 때문에이 동작이 바람직하지 않은 이유를 알 수 있습니다. 그러나 토스트의 위치에 관계없이 화면에서 실제 화면을 볼 수 있습니다. 귀하의 신청서 또는 아래의 신청서에 상관없이
해결 방법을 실제로 구현하려는 경우 토스트를 세로로 오프셋하기위한 구현이 있습니다. 경미한 변화는 조경 모드를 달성해야하지만, 조금 더 finnicky입니다. 응답뿐만와
View root = findViewById(R.id.root_main);
int[] xy = new int[2];
root.getLocationOnScreen(xy);
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
int devHeight = displayMetrics.heightPixels;
int viewHeight = root.getHeight();
Toast toast = Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG);
int yOffset = Math.abs(xy[1] - devHeight + viewHeight) + toast.getYOffset();
toast.setGravity(Gravity.BOTTOM, 0, yOffset);
toast.show();
답해 주셔서 감사합니다. 토스트는 [Toast 개발자 가이드] (https://developer.android.com/guide/topics/ui/notifiers/toasts)의 예와 같이 작은 메시지에 대해서는 모든 앱에서 사용할 수 있습니다. .html)는 말한다. 토스트가 시스템 메시지만을위한 것이라는 합의가 이루어 졌다면 내 토스트를 사용자 정의하는 방법을 왜 설명합니까? 나는 "Game Over"나 "Playlist에 10 곡 추가"와 같은 것들을 위해 사용합니다. – 0X0nosugar
(계속) 표준 토스트를 사용하고 사용자가 어떤 앱에서 메시지가 왔는지조차 알 수 없다면 정말 위험합니다 (심지어 위험합니다). 물론 다른 앱의 영역을 다루고 싶지는 않습니다. – 0X0nosugar
해결 방법 : 코드를 표시 할 수 있습니까? 질문에서 내 작은 샘플 응용 프로그램으로 이것을 테스트하고 싶습니다. – 0X0nosugar