Android SnackBar学习
2016-06-20 16:48
525 查看
Android SnackBar学习
SnackBar是在android 5.0后新出的控件,可以用来替换传统的Toast方式.在一定程度上也可以用来替换Dialog控件.使用方法
SnackBar在使用上和Toast相近,主要也是使用make方法及show方法.同时可以调用setAction方法,用于生成一个点击事件public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button snackBar, snackBarAction; private CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); coordinatorLayout = (CoordinatorLayout) findViewById(R.id.container); snackBar = (Button) findViewById(R.id.snackbar_click); snackBarAction = (Button) findViewById(R.id.snackbar_action); snackBar.setOnClickListener(this); snackBarAction.setOnClickListener(this); } @Override public void onClick(View view) { if (view.getId() == snackBar.getId()) { //无action,可以用于替换toast,可以被滑动撤销 Snackbar.make(coordinatorLayout, "this is snack bars", Snackbar.LENGTH_LONG).show(); } else if (view.getId() == snackBarAction.getId()) { Snackbar.make(coordinatorLayout, "this is snack bars", Snackbar.LENGTH_LONG) //设置action,可用于点击,如OnclickListener为空,则看不到action .setAction("action", new View.OnClickListener() { @Override public void onClick(View view) { Log.d("LOG_PRINT","SnackBar action has click"); } }) //此处可用于监听SnackBar消失 .setCallback(new Snackbar.Callback() { @Override public void onDismissed(Snackbar snackbar, int event) { Log.d("LOG_PRINT","event is "+event); super.onDismissed(snackbar, event); } }).show(); } } }
以下是于关event的定义
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.liupeng.study.MainActivity"> <Button android:id="@+id/snackbar_click" android:layout_width="0dp" android:layout_height="51dp" android:text="snackbar" app:layout_constraintLeft_toLeftOf="@+id/activity_main" android:layout_marginLeft="16dp" android:layout_marginStart="16dp" app:layout_constraintTop_toTopOf="@+id/activity_main" android:layout_marginTop="16dp" app:layout_constraintRight_toRightOf="@+id/activity_main" android:layout_marginRight="16dp" android:layout_marginEnd="16dp" app:layout_constraintHorizontal_bias="1.0" /> <Button android:text="snack bar with action" android:layout_width="0dp" android:layout_height="50dp" android:id="@+id/snackbar_action" app:layout_constraintLeft_toLeftOf="@+id/activity_main" android:layout_marginLeft="16dp" android:layout_marginStart="16dp" app:layout_constraintTop_toBottomOf="@+id/snackbar_click" android:layout_marginTop="24dp" app:layout_constraintRight_toRightOf="@+id/activity_main" android:layout_marginRight="16dp" android:layout_marginEnd="16dp" /> <!-- SnackBar 父view ,可以保证SnackBar被滑动取消,不定义也可以使用--> <android.support.design.widget.CoordinatorLayout android:id="@+id/container" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="@+id/activity_main" app:layout_constraintRight_toRightOf="@+id/activity_main" app:layout_constraintBottom_toBottomOf="@+id/activity_main" /> </android.support.constraint.ConstraintLayout>
以下是效果图
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories