SnackBar 笔记(一)基本使用
来源:互联网 发布:淘宝恶意退款技巧 编辑:程序博客网 时间:2024/06/01 07:33
这篇文章(纯手打)能使你快速使用Snackbar,颜色、样式等花式玩转SnackBar请见下回分解
一 优点:
1. 配合CoordinatorLayout使用,SnackBar可以被Swipe手势划走;
2.可代替toast,土司不能主动消除 很烦人!而且snackbar还可以在点击时添加监听做其他一些事情
二 首先要导入:在build.gradle(Module:你的module)的dependencies标签中添加一行
compile 'com.android.support:design:22.2.0' 并进行 sync now,如无意外情况可继续进行
三 直接上硬菜 ,您简单做个布局
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/id_drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/id_framelayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" android:text="我是textview" /> <EditText android:id="@+id/et" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="测试snack与键盘的冲突" /> <Button android:id="@+id/id_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="来一个SnackBar" /> </LinearLayout> <LinearLayout android:id="@+id/id_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#E0EEE0" android:orientation="vertical"> <ListView android:id="@+id/id_lv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="#CD853F" android:dividerHeight="2dp" /> </LinearLayout> <LinearLayout android:id="@+id/id_drawer1" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="end" android:background="#E0EEE0" android:orientation="vertical"> <ListView android:id="@+id/id_lv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="#CD853F" android:dividerHeight="2dp" /> </LinearLayout></android.support.v4.widget.DrawerLayout>
然后再activity中粘贴以下代码 直接跑起来看效果吧!哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
- public class MainActivity extends BaseActivity {
// private MyDrawer drawerLayout;
private DrawerLayout drawer;
private Button id_btn;
private CoordinatorLayout coordinatorLayout;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.slide_main);
drawer = fView(R.id.drawer);
id_btn = fView(R.id.id_btn);
tv = fView(R.id.tv);
id_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- // 一下两行是为了隐藏键盘 防止键盘挡住snackbar
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
Snackbar.make(id_btn, "我是SnackBar", Snackbar.LENGTH_LONG).setAction("点击触发监听", new View.OnClickListener() {
@Override
public void onClick(View v) {
tv.setText("底部通知栏被点了!");
}
}).show();
}
});
}
}
使用方法很简单,几乎和Toast没有区别.
make()方法的第一个参数是一个view.要想支持Swipe手势的话,这个view需要是一个CoordinatorLayout(也是在Android Support Library里面的控件)
setAction,用法也是一目了然.设置下显示内容string,设置一个OnClickListener.
SnackBar使用时候有几点需要注意:
1. make()方法的第一个参数的view,不能是有一个ScrollView.
因为SnackBar的实现逻辑是往这个View去addView.而ScrollView我们知道,是只能有一个Child的.否则会Exception.
2. 如果大家在想把Toast替换成SnackBar.需要注意的是,Toast和SnackBar的区别是,前者是悬浮在所有布局之上的包括键盘,而SnackBar是在View上直接addView的.
所以SnackBar.show()的时候,要注意先把Keyboard.hide()了.不然,键盘就会遮住SnackBar.
3. 在Android2.3,SnackBar即使用了CoordinatorLayout也是不支持Swipe功能.
个人觉得,这一点点小瑕疵就可以忽略啦哈哈.
4. 在Android2.3,SnackBar的深色背景颜色和字体颜色相近.可以用SpannableString换一下String的颜色在传给make()方法.
3 0
- SnackBar 笔记(一)基本使用
- Snackbar的基本使用
- SnackBar的基本使用
- Snackbar的基本使用
- Snackbar的基本使用
- SnackBar基本使用
- Android Design Support Library 使用详解一(Snackbar)
- Libevent学习笔记(一):基本使用
- tensorflow学习笔记----一(基本使用)
- 快速弹出窗口(一):SnackBar的使用
- SnackBar使用
- SnackBar 笔记(二)样式美化
- SnackBar 笔记(三)错误及问题
- Material Design (三),Snackbar的使用
- (三十)Snackbar 使用及其源码分析
- JDBC MYSQL 学习笔记(一) JDBC 基本使用
- tensorflow学习笔记(一)——tensorflow基本使用
- 一只大二狗的Android历程--Snackbar的使用
- jquery ajax 不能用于下载文件
- zookeeper使用和原理探究(一)
- Swift基础(五):类和结构体
- OpenCV中关于求算图像的直方图(二)
- ProgressBar控件
- SnackBar 笔记(一)基本使用
- Java集合干货系列-集合总体大纲
- 第十五周实践项目阅读程序————5
- 关于Android studio中os文件导入失败的解决方式
- Expectation Maximization Algorithm---opencv2.4.11
- 有的放矢,Liferay进军数字体验市场
- HDU 1241 Oil Deposits (基础DFS 或者 BFS)
- 乐学成语——显示学习列表
- hadoop、spark学习中常用的linux命令