我想从顶部提供动画,而不是从底部SnackBar
显示的常规行为。SnackBar
这很容易破解吗?
问问题
23500 次
4 回答
6
有可能的。检查我制作的这个库https://github.com/AndreiD/TSnackBar
基本上你添加了 2 个从顶部滑动的新动画,并改变了布局的重力。就这样 :)
稍后编辑:有一个错误正在发生...... 如果有人想花一些时间来修复它,我们都会很感激 :)
于 2015-10-25T18:40:22.103 回答
5
不,这是不可能的。该文件指出
它们在移动设备的屏幕底部和较大设备的左下方显示一条简短消息。Snackbars 出现在屏幕上所有其他元素的上方,一次只能显示一个。
您可以使用第三方库,例如Crouton
于 2015-07-27T18:02:42.663 回答
5
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Text", Snackbar.LENGTH_LONG);
View view = snackbar.getView();
CoordinatorLayout.LayoutParams params =(CoordinatorLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snackbar.show();
于 2016-04-21T11:28:08.997 回答
0
编辑:此解决方案将 Snackbar 呈现在顶部,但动画来自底部。
这是可能的,至少使用Android 材料库和一个小技巧是可能的。您可以将snackbar 绑定到呈现在顶部位置的视图,如下所示:
开activity_main.xml
:
<!-- rest of the components here -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/top_coordinator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
开MainActivity.kt
:
val snackbar = Snackbar.make(
findViewById(R.id.top_coordinator),
"Hello World",
Snackbar.LENGTH_INDEFINITE
)
snackbar.show()
于 2019-06-13T01:50:03.827 回答