How to show Snackbar when Activity starts?
我想在活动开始时显示android
但是问题是我们在创建
1 2 3 4 5 6 7 8 9 | 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(); |
当我们在活动开始时显示
只需指向
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @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。
这是显示快餐栏的最简单方法。要将其显示为主要活动开始,只需将这两行放在
1 2 | Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content),"Welcome To Main Activity", Snackbar.LENGTH_LONG); snackbar.show(); |
附:只需确保已导入Android设计支持即可(如问题中所述)。
对于科特林,
1 | Snackbar.make(findViewById(android.R.id.content), message, Snackbar.LENGTH_SHORT).show() |
Try this
1 2 3 4 | Snackbar.make(findViewById(android.R.id.content),"Got the Result", Snackbar.LENGTH_LONG) .setAction("Submit", mOnClickListener) .setActionTextColor(Color.RED) .show(); |
call this method in onCreate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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(); |
只需在onCreate中使用以下代码即可完成此操作。通过使用android的默认布局
1 | Snackbar.make(findViewById(android.R.id.content),"Your Message",Snackbar.LENGTH_LONG).show(); |
显示小吃店的工具功能
1 2 3 4 5 6 7 8 9 10 | 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() } |
在Activity中使用的示例
1 2 3 4 5 | showSnackBar(this,"No internet") showSnackBar(this,"No internet", duration = Snackbar.LENGTH_LONG) showSnackBar(activity,"No internet","OK", View.OnClickListener { // handle click }) |
在片段中使用的示例
1 | showSnackBar(getActivity(),"No internet") |
希望对你有帮助
您可以尝试此库。这是android默认快餐栏的包装。 https://github.com/ChathuraHettiarachchi/CSnackBar
1 2 3 4 5 | Snackbar.with(this,null) .type(Type.SUCCESS) .message("Profile updated successfully!") .duration(Duration.SHORT) .show(); |
它包含多种类型的小吃店,甚至是customview集成的小吃店