网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Snackbar位置显示的一点小问题-创新互联

compile 'com.android.support:design:23.4.0'

Android Studio 新建项目会默认有个展示Snackbar的方法,一直没用。前两天某微信公众号看到

创新互联公司是一家专业提供岳塘企业网站建设,专注与做网站、成都网站建设、H5高端网站建设、小程序制作等业务。10年已为岳塘众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

http://www.jianshu.com/p/996dc15d21be 这个文章。写得很好,很全面,基本功能,样式定制都有写到。

其中有处写到自定义显示位置的,感觉很有必要,因为这个和Toast不一样,Toast会显示在软键盘上,而这个会被软键盘挡住。

ViewGroup.LayoutParams vl = v.getLayoutParams();
                CoordinatorLayout.LayoutParams cl = new CoordinatorLayout.LayoutParams(vl.width,vl.height);                              
                cl.gravity = Gravity.CENTER;//设置显示位置居中
                v.setLayoutParams(cl);

但是当将位置设置为

Gravity.TOP

设置偏移距离却无法生效

Rect frame = new Rect();
view.getWindowVisibleDisplayFrame(frame);
l.topMargin =frame.top;

原来是有的View的parent是继承的 FrameLayout这点得注意,需要

FrameLayout.LayoutParams l = (FrameLayout.LayoutParams) v.getLayoutParams();

当然自己写显示在上边很麻烦的,还要处理显示及隐藏动画

在Snackbar.Java的  animateViewIn() 和  animateViewout() 里都有规定

Github上有个很不错的  https://github.com/AndreiD/TSnackBar

是照着系统上的来做的,然后又增加不少小功能。先记一下,如果项目用到就把这个下载来改改

在  design_layout_snackbar.xml  里面有句

android:layout_gravity="bottom"

这个一定要记得改成  top

这样就能在上面显示了。

然后就是相应的动画  R.anim.design_snackbar_in  和  R.anim.design_snackbar_out

不过这两个都是在

Build.VERSION.SDK_INT 

时调用的,所以可以删掉,不用改

刚好看到系统的final void showView()方法 public void onDismiss(View view)有一行

view.setVisibility(View.GONE);

但是在Tsnackbar里把这句删掉了,好吧看来得注意一下还有没别的大区别.

总结:如果长期显示在顶部可以用Github的项目,否则用design库就行

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:Snackbar位置显示的一点小问题-创新互联
网址分享:http://bjjierui.cn/article/doisss.html

其他资讯