Notice
Recent Posts
Recent Comments
Link
투케이2K
726. (Android/Java) [Material] 머터리얼 디자인 사용해 Custom Snackbar 커스텀 스낵바 생성 본문
Android
726. (Android/Java) [Material] 머터리얼 디자인 사용해 Custom Snackbar 커스텀 스낵바 생성
투케이2K 2024. 1. 18. 20:23[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [Snackbar] : [BLACK : 커스텀 스낵바 메시지 출력]
// -----------------------------------------------------------------------------------------
// TODO [필요 의존성 및 style 설정]
// -----------------------------------------------------------------------------------------
/*
implementation 'com.google.android.material:material:1.8.0' // TODO [컴파일, 빌드 타겟 33 인 경우]
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
</style>
*/
// -----------------------------------------------------------------------------------------
// TODO [호출 방법]
// -----------------------------------------------------------------------------------------
/*
C_Ui_View.showSnackBarBlack(A_Intro.this, getWindow().getDecorView(), "알림", "내용", "확인");
*/
// -----------------------------------------------------------------------------------------
public static void showSnackBarBlack(Context mContext, View view, String title, String message, String button){
// ===============================================================
S_Log._F_(mContext, "BLACK : 커스텀 스낵바 메시지 출력", new String[] { "title :: " + String.valueOf(title), "message" + String.valueOf(message) });
// ===============================================================
try {
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
if (mContext != null){
// TODO [스낵바 표시 데이터]
String data = "";
if (C_Util.stringNotNull(title) == true){
data = "[" + title + "]";
}
if (C_Util.stringNotNull(message) == true){
// [이미 data 에 저장된 데이터가 있는 경우]
if (C_Util.stringNotNull(data) == true){
data += " : " + String.valueOf(message);
}
else {
data += String.valueOf(message);
}
}
// TODO [스낵바 표시 수행]
View contentLayout = view.findViewById(android.R.id.content); // [안드로이드 content View 지정]
//Snackbar.make(contentLayout, String.valueOf(data), Snackbar.LENGTH_LONG) // [레이아웃 / 메시지 / 표시 시간]
Snackbar.make(contentLayout, String.valueOf(data), Snackbar.LENGTH_INDEFINITE) // [레이아웃 / 메시지 / 표시 지속]
.setBackgroundTint(Color.BLACK) // [배경 색상]
.setTextColor(Color.WHITE) // [텍스트 색상]
.setActionTextColor(Color.YELLOW) // [버튼 색상 변경]
//.setDuration(10000) // [10 초 표시 유지]
.setTextMaxLines(20) // [텍스트 줄 표시 라인]
.setAction(String.valueOf(button), new View.OnClickListener() { // [버튼 클릭 이벤트 정의]
@Override
public void onClick(View view) {
}
}).show();
}
}
}, 0);
}
catch (Exception e){
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
}
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments