Android App开发基础篇—Snackbar的使用
2016-07-29 12:05
239 查看
Android App开发基础篇—Snackbar的使用
引言:Snackbar是Android Support Design Library库中的一个控件,可以实现与Toast一样的效果,但比Toast更加灵活,可以实现自定义布局,设置点击事件。
使用:
要使用Snackbar,需要先在项目中引入android-support-design库。具体方法如下:
1.使用AndroidStudio:在bulid.gradle(Module:app)的dependencies中添加如下语句:
compile 'com.android.support:design:23.2.0' //语句后面的23.2.0可能需要自己根据项目的SDK版本进行设置。
2.使用Eclipse:下载android-support-design.jar的jar包,导入项目的libs文件夹。
Snackbar的基本使用:
使用Snackbar需要添加一个容器来容纳Snackbar,官方推荐使用另一个Android Support Design Library库中的控件CoordinatorLayout,使用CoordinatorLayout可以保证让用户通过右滑取消Snackbar。
XML布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android[b]:layout_height="match_parent" android:orientation="vertical" tools:context="lyk.snackbartest.MainActivity"> <Button android:id="@+id/show_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Show Snackbar" android:textSize="20dp"/> <Button android:id="@+id/hide_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/show_button" android:layout_marginTop="10dp" android:text="Hide Snackbar" android:textSize="20dp"/> <android.support.design.widget.CoordinatorLayout android:id="@+id/snackbar_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> </android.support.design.widget.CoordinatorLayout> </RelativeLayout>
在Activity中,获取CoordinatorLayout作为Snackbar的容器,然后调用Snackbar.make(View view,CharSequence text,int duration)方法生成一个Snackbar对象。其中的3个参数:第一个参数view就是用来容纳Snackbar的CoodinatorLayout;第二个参数是显示的文本内容;第三个参数表示Snackbar的显示时长,这个参数有3个值:Snackbar.LENGTH_SHORT、Snackbar.LENGTH_LONG、Snackbar.LENGTH_INDEFINITE,其中SHORT和LONG跟Toast的时长参数一样,INDEFINITE表示长久显示,此时要使Snackbar消失,调用Snackbar.dismiss()方法即可。
代码:
public class MainActivity extends AppCompatActivity { private CoordinatorLayout mSnackbarContainer; private Snackbar snackbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.[b]activity_main[/b]); mSnackbarContainer = (CoordinatorLayout) findViewById(R.id.[b]snackbar_container[/b]); findViewById(R.id.[b]show_button[/b]).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { snackbar = Snackbar.make(mSnackbarContainer, "SnackbarTest", Snackbar.[b]LENGTH_INDEFINITE[/b]); snackbar.show(); } }); findViewById(R.id.[b]hide_button[/b]).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { snackbar.dismiss(); } }); } }
为Snackbar设置点击事件:Snackbar不仅可以实现Toast效果,还可以设置点击事件。通过snackbar.setAction方法,可以为Snackbar设置点击事件。代码如下:
snackbar.setAction("走你", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "测试Snackbar点击事件", Toast.LENGTH_LONG).show(); } });
相关文章推荐
- Android基础入门教程——1.2.2 使用Android Studio开发Android APP
- Android App开发基础篇—HttpURLConnection基础使用
- Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP
- Android基础入门教程——1.2.2 使用Android Studio开发Android APP
- Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP
- 【Android开发基础】应用界面主题Theme使用方法
- 使用百度siteapp开发网站的App-(IOS和Android版本)
- Android开发历程_15(AppWidget的使用)
- 使用jqMobi开发app基础:响应式布局介绍
- 使用jqMobi开发app基础:定义header
- 使用jqMobi开发app基础:panel属性data-defer介绍
- Android游戏开发框架Libgdx的使用(一)--Libgdx基础入门
- 【Android开发基础】应用界面主题Theme使用方法
- 使用jqMobi开发app基础:Styled Lists布局
- 使用jqMobi开发app基础:HTML5 LocalStorage 本地存储
- 使用百度siteapp开发网站的App-(IOS和Android版本)
- Android零基础开发专题三:Android SDK帮助文档使用方法
- Android App使用指南的开发
- 【Android开发基础】应用界面主题Theme使用方法
- android 开发之路-------SQLite 基础使用