내가 사용할 때 Toast
화면에 팝업 텍스트를 표시 데 텍스트가 화면 아래쪽 약간 위에 표시됩니다 (기본 위치).
이제 화면 중간 또는 원하는 위치에 표시하고 싶습니다.
누구든지 이것을 달성하는 방법을 안내 할 수 있습니까?
답변
에서 문서 ,
토스트 배치
표준 토스트 알림이 화면 하단 근처에 가로로 가운데에 나타납니다.
setGravity(int, int, int)
방법 으로이 위치를 변경할 수 있습니다
. 여기에는
Gravity
상수,x-position
오프셋 및y-position
있습니다.예를 들어, 토스트가 왼쪽 상단에 나타나도록 결정하면 다음과 같이 중력을 설정할 수 있습니다.
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
오른쪽으로 위치를 이동하려면 두 번째 매개 변수의 값을 늘리십시오. 조금 내리려면 마지막 매개 변수의 값을 늘리십시오.
답변
makeText를 호출해야한다는 오류가 발생하면 다음 코드에서이를 해결합니다.
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
답변
다음을 사용하여 토스트 위치를 사용자 정의 할 수 있습니다.
setGravity(int gravity, int xOffset, int yOffset)
이를 통해 토스트의 위치를 구체적으로 지정할 수 있습니다.
xOffset 및 yOffset 매개 변수에 대해 가장 유용한 것 중 하나는 특정 뷰를 기준으로 토스트를 배치하는 데 사용할 수 있다는 것입니다.
예를 들어, 버튼 위에 나타나는 사용자 정의 토스트를 만들려면 다음과 같은 기능을 만들 수 있습니다.
// v is the Button view that you want the Toast to appear above
// and messageId is the id of your string resource for the message
private void displayToastAboveButton(View v, int messageId)
{
int xOffset = 0;
int yOffset = 0;
Rect gvr = new Rect();
View parent = (View) v.getParent();
int parentHeight = parent.getHeight();
if (v.getGlobalVisibleRect(gvr))
{
View root = v.getRootView();
int halfWidth = root.getRight() / 2;
int halfHeight = root.getBottom() / 2;
int parentCenterX = ((gvr.right - gvr.left) / 2) + gvr.left;
int parentCenterY = ((gvr.bottom - gvr.top) / 2) + gvr.top;
if (parentCenterY <= halfHeight)
{
yOffset = -(halfHeight - parentCenterY) - parentHeight;
}
else
{
yOffset = (parentCenterY - halfHeight) - parentHeight;
}
if (parentCenterX < halfWidth)
{
xOffset = -(halfWidth - parentCenterX);
}
if (parentCenterX >= halfWidth)
{
xOffset = parentCenterX - halfWidth;
}
}
Toast toast = Toast.makeText(getActivity(), messageId, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, xOffset, yOffset);
toast.show();
}
답변
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
답변
Toast mytoast= Toast.makeText(getApplicationContext(), "Toast Message", 1);
mytoast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); // for center horizontal
//mytoast.setGravity(Gravity.CENTER_VERTICAL); // for center vertical
//mytoast.setGravity(Gravity.TOP); // for top
mytoast.show();
위의 코드는 화면 중간에 토스트를 표시하는 데 도움이되거나 ur 필요에 따라 토스트 중력을 설정하는 ur 선택에 따라 표시됩니다.
참고 :이 과정에서 토스트의 객체를 사용해야합니다
답변
토스트의 색상, 위치 및 배경색을 변경하는 방법은 다음과 같습니다.
Toast toast=Toast.makeText(getApplicationContext(),"This is advanced toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM | Gravity.RIGHT,0,0);
View view=toast.getView();
TextView view1=(TextView)view.findViewById(android.R.id.message);
view1.setTextColor(Color.YELLOW);
view.setBackgroundResource(R.color.colorPrimary);
toast.show();
답변
topin 화면에서 토스트 설정
toast.setView(view);
toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
이제 바닥에
toast.setView(view);
toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
왼쪽, 오른쪽 및 중앙에 토스트를 설정할 수있는 것과 같은 방식으로