活动开始时如何显示小吃店?

我想在活动开始时显示android Snackbar (android.support.design.widget.Snackbar) ,就像我们显示一个Toast

但问题是我们必须在创buildSnackbar时指定父级布局,如下所示:

 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时给出父级布局(如果是点击事件,我们可以轻松地通过父级视图)?

只需指向Activity's XML中的任何View 。 例如,您可以给根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。 这是显示Snackbar的最简单方法。 要将其显示为主要活动,请将这两行放入OnCreate()

  Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Welcome To Main Activity", Snackbar.LENGTH_LONG); snackbar.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(); 

你可以试试这个库。 这是一个Android默认小吃包的包装。 https://github.com/ChathuraHettiarachchi/CSnackBar

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

这包含多种types的小吃店,甚至是一个自定义的小吃店

尝试这个

 Snackbar.make(findViewById(android.R.id.content), "Got the Result", Snackbar.LENGTH_LONG) .setAction("Submit", mOnClickListener) .setActionTextColor(Color.RED) .show();