ProgramingTip

활동이 시작될 때 스낵바를 표시하는 방법은 무엇입니까?

bestdevel 2020. 10. 4. 12:02
반응형

활동이 시작될 때 스낵바를 표시하는 방법은 무엇입니까?


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();

이 라이브러리를 볼 수 있습니다. 이것은 안드로이드 기본 스낵바의 래퍼입니다. https://github.com/ChathuraHettiarachchi/CSnackBar

Snackbar.with(this,null)
    .type(Type.SUCCESS)
    .message("Profile updated successfully!")
    .duration(Duration.SHORT)
    .show();

여기에는 여러 유형의 스낵바와 customview 통합 스낵바가 포함됩니다.


쇼 스낵바를위한 유틸리티 기능

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")

도움이되기를 바랍니다.


onCreate 내에서 다음 코드를 사용하여 간단히 수행 할 수 있습니다. Android의 기본 레이아웃을 사용하여

Snackbar.make(findViewById(android.R.id.content),"Your Message",Snackbar.LENGTH_LONG).show();

참고 URL : https://stackoverflow.com/questions/30978457/how-to-show-snackbar-when-activity-starts

반응형