SnackBar
最近の Android ライブラリはほんの数日前に公開されましたが、できれば親ビューである RelativeLayout 内で、画面の上部に表示したいと考えています。
SnackBar
私が推測している の初期配置をどのように変更layout_alignParentBottom
しlayout_alignParentTop
ますか?
SnackBar
最近の Android ライブラリはほんの数日前に公開されましたが、できれば親ビューである RelativeLayout 内で、画面の上部に表示したいと考えています。
SnackBar
私が推測している の初期配置をどのように変更layout_alignParentBottom
しlayout_alignParentTop
ますか?
これを使用して、スナックバーを画面の上部に表示することができます。
Snackbar snack = Snackbar.make(parentLayout, str, Snackbar.LENGTH_LONG);
View view = snack.getView();
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snack.show()
注: スナックバーのアニメーションは、ianhanniballake の回答に従って下部に表示されるように意図されていたため、画面の下部から始まり、予想どおり画面の上部に急上昇します。
通知が上から押し寄せてくる場合は、代わりにカスタム バナーを取得したほうがよいでしょう。
画面の上部から CoordinatorLayout を使用して SnackBar を追加する簡単な方法を次に示しますが、アニメーションは依然として問題です。
次のように CoordinatorLayout レイアウトをレイアウトに追加するだけです。
<android.support.design.widget.CoordinatorLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:id="@+id/snackbarlocation">
</android.support.design.widget.CoordinatorLayout>
次に、アクティビティでそれへの参照を取得し、以下のように SnackBar に渡します。
CoordinatorLayout Clayout = (CoordinatorLayout)findViewById(R.id.snackbarlocation);
FabButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(Clayout, "This snack bar located at top", Snackbar.LENGTH_SHORT).show();
}
});
さて、snackbar の layoutparam を取得し、コードで bottomMargin を変更できます。お気に入り
Snackbar snackbar = Snackbar.make(rootView, message, Snackbar.LENGTH_LONG);
View view = snackbar.getView();
FrameLayout.LayoutParams para = (CoordinatorLayout) view.getLayoutParams();
params.bottomMargin = showAtLocation // pass your location offset here
view.setLayoutParams(params);
次に、snackbar インスタンスを使用して、いつでも表示できます
snackbar.show();
それは簡単な方法で行うことができます
最初にスナックバーが含まれるレイアウトを作成します
<LinearLayout
android:id="@+id/info_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
次にコードで
ll_mesg.addView(Snackbar.make(ll_mesg, "Please choose your luck from one of box", Snackbar.LENGTH_LONG)
.getView());
new Handler().postDelayed(new Runnable() {
public void run() {
ll_mesg.removeAllViews();
}
}
,1000);