Android指定SnackBar在屏幕的位置
Snackbar 常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方,并且是在屏幕所有层的最上方。如果要指定它在屏幕出现的位置,可以把SnackBar放置在android.support.design.widget.CoordinatorLayout内。
在RelativeLayout里添加CoordinatorLayout如下:
<android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/myCoordinatorLayout" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></android.support.design.widget.CoordinatorLayout>调用Snackbar.make()把CoordinatorLayout作为第一个参数,如下:
final View viewPos = findViewById(R.id.myCoordinatorLayout); Snackbar.make(viewPos, R.string.snackbar_text, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_action_undo, showListener) .show();可以通过改变CoordinatorLayout的位置来改变Snackbar的位置,如设置android:paddingBottom="16dp"。
Snackbar位置显示的一点小问题
compile 'com.android.support:design:23.4.0'Android Studio 新建项目会默认有个展示Snackbar的方法,一直没用。前两天某微信公众号看到
http:///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 <Build.VERSION_CODES.ICE_CREAM_SANDWICH//(14)时调用的,所以可以删掉,不用改
刚好看到系统的final void showView()方法 public void onDismiss(View view)有一行
view.setVisibility(View.GONE);但是在Tsnackbar里把这句删掉了,好吧看来得注意一下还有没别的大区别.
总结:如果长期显示在顶部可以用Github的项目,否则用design库就行
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。