Snackbar
(android.support.design.widget.Snackbar)
활동이 시작될 때 Android를 표시하고 싶습니다 Toast
.
하지만 문제는 다음 Snackbar
과 같이 만들 때 부모 레이아웃을 지정해야한다는 것입니다.
Snackbar.make(parentlayout, "This is main activity", Snackbar.LENGTH_LONG)
.setAction("CLOSE", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
})
.setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
.show();
Snackbar
클릭 이벤트없이 액티비티 시작 부분에 표시 할 때 부모 레이아웃을 제공하는 방법 (클릭 이벤트 인 경우 부모보기를 쉽게 전달할 수 있음)?
답변
XML View
내부를 가리 킵니다 Activity's
. 예를 들어 루트 viewGroup에 ID를 제공하고 다음을 사용할 수 있습니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
View parentLayout = findViewById(android.R.id.content);
Snackbar.make(parentLayout, "This is main activity", Snackbar.LENGTH_LONG)
.setAction("CLOSE", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
})
.setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
.show();
//Other stuff in OnCreate();
}
답변
지금까지 Snackbar를 표시하는 데 어려움을 겪었습니다. 다음은 스낵바를 표시하는 가장 간단한 방법입니다. 주요 활동 시작으로 표시하려면이 두 줄을OnCreate()
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Welcome To Main Activity", Snackbar.LENGTH_LONG);
snackbar.show();
추신 : Android 디자인 지원을 가져 왔는지 확인하십시오 (질문에서 언급했듯이).
Kotlin의 경우
Snackbar.make(findViewById(android.R.id.content), message, Snackbar.LENGTH_SHORT).show()
답변
이 시도
Snackbar.make(findViewById(android.R.id.content), "Got the Result", Snackbar.LENGTH_LONG)
.setAction("Submit", mOnClickListener)
.setActionTextColor(Color.RED)
.show();
답변
onCreate에서이 메서드를 호출합니다.
Snackbar snack = Snackbar.make(
(((Activity) context).findViewById(android.R.id.content)),
message + "", Snackbar.LENGTH_SHORT);
snack.setDuration(Snackbar.LENGTH_INDEFINITE);//change Duration as you need
//snack.setAction(actionButton, new View.OnClickListener());//add your own listener
View view = snack.getView();
TextView tv = (TextView) view
.findViewById(android.support.design.R.id.snackbar_text);
tv.setTextColor(Color.WHITE);//change textColor
TextView tvAction = (TextView) view
.findViewById(android.support.design.R.id.snackbar_action);
tvAction.setTextSize(16);
tvAction.setTextColor(Color.WHITE);
snack.show();
답변
쇼 스낵바를위한 유틸리티 기능
fun showSnackBar(activity: Activity, message: String, action: String? = null,
actionListener: View.OnClickListener? = null, duration: Int = Snackbar.LENGTH_SHORT) {
val snackBar = Snackbar.make(activity.findViewById(android.R.id.content), message, duration)
.setBackgroundColor(Color.parseColor("#CC000000")) // todo update your color
.setTextColor(Color.WHITE)
if (action != null && actionListener!=null) {
snackBar.setAction(action, actionListener)
}
snackBar.show()
}
활동에서 사용하는 예
showSnackBar(this, "No internet")
showSnackBar(this, "No internet", duration = Snackbar.LENGTH_LONG)
showSnackBar(activity, "No internet", "OK", View.OnClickListener {
// handle click
})
조각에서 사용하는 예
showSnackBar(getActivity(), "No internet")
도움이되기를 바랍니다.
답변
이 라이브러리를 사용해 볼 수 있습니다. 이것은 안드로이드 기본 스낵바의 래퍼입니다. https://github.com/ChathuraHettiarachchi/CSnackBar
Snackbar.with(this,null)
.type(Type.SUCCESS)
.message("Profile updated successfully!")
.duration(Duration.SHORT)
.show();
여기에는 여러 유형의 스낵바와 심지어 customview 통합 스낵바가 포함됩니다.
답변
onCreate 내에서 다음 코드를 사용하여 간단히 수행 할 수 있습니다. Android의 기본 레이아웃을 사용하여
Snackbar.make(findViewById(android.R.id.content),"Your Message",Snackbar.LENGTH_LONG).show();