我想从顶部提供SnackBar
动画,而不是从底部显示SnackBar
的常规行为。这很容易被破解吗?
答案 0 :(得分:5)
答案 1 :(得分:4)
有可能。 检查我https://github.com/AndreiD/TSnackBar
创建的这个库基本上你添加2个新的动画从顶部滑动,并改变布局的重力。这就是全部:)
后来编辑:发生了一个错误....如果有人想花一些时间修理它,我们都会很感激:)
答案 2 :(得分:3)
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();
答案 3 :(得分:0)
编辑:此解决方案在顶部显示Snackbar,但动画从底部显示。
至少可以使用Android Material库和一些技巧来实现。 您可以将快餐栏绑定到在顶部位置呈现的视图,如下所示: 在activity_main.xml上:
<FrameLayout>
<!-- 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"/>
</FrameLayout>
在MainActivity.kt上:
val snackbar = Snackbar.make(
findViewById(R.id.top_coordinator),
"Hello World",
Snackbar.LENGTH_INDEFINITE
)
snackbar.show()