안드로이드스튜디오 토스트메세지 안뜨는 이유가 뭔지 좀 확인 부탁드립니다 ㅠㅠ
조회수 1267회
안녕하세요,
코린인데 안드로이드스튜디오 독학 중입니다.
아래와 같이 토스트메세지에 그래비티를 설정했는데 버튼만 뜨고 메세지가 뜨질 않아요ㅠㅠ
AMD를 nexus 5 뭐시기에서 pixel 뭐시기로 바꾸면 토스트메세지가 뜨긴하는데 설정한 gravity로 뜨진 않아요 ㅠㅠ
도대체 뭐가 문젠지 모르겠어요 ㅠㅠ 고수님들 제발 좀 알려주세요 ㅠㅠ
package org.techtown.toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(getApplicationContext(),"위치가 바뀐 토스트",Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.LEFT,200,200);
toast.show();
}
});
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
토스트 클래스의 setGravity 문서를 확인하시면 버전 R 혹은 그 이상을 타게팅 하면서 단순 텍스트 토스트일 경우에는 작동하지 않는다고 나와있습니다.
커스텀 뷰를 넣은 토스트를 사용하시면 될것같습니다.
아래는 간단하게 커스텀 뷰를 넣는 스니펫입니다.
// MainActivity.java findViewById(R.id.main_button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "onClick: "); LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast_container)); TextView text = (TextView) layout.findViewById(R.id.text); text.setText("This is a custom toast"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.TOP|Gravity.LEFT,200,200); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); } });
<LinearLayout <!-- custom_toast.xml --> xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/custom_toast_container" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp" android:background="#DAAA" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFF" android:text="TOAST" /> </LinearLayout>
댓글 입력