/ / Android Snackbarの初期配置を下から上に変更するにはどうすればよいですか。 - アンドロイド、マテリアルデザイン、アンドロイドデザインライブラリ、スナックバー、アンドロイドスナックバー

Android Snackbarの初期配置を下から上に変更するにはどうすればよいですか? - アンドロイド、マテリアルデザイン、アンドロイドデザインライブラリ、スナックバー、android-snackbar

最近のAndroidライブラリはほんの数日前に出てきましたが、私は SnackBar それは親ビューであるため、RelativeLayout内で画面の上部に表示されることをお勧めします。

どのように人は変わりますか SnackBarの初期の配置 layout_alignParentBottomlayout_alignParentTop

回答:

回答№1は28

次のようにして、スナークバーを画面の上に表示することができます。

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の回答のとおり、下部に表示することを目的としていたためです。

通知が上から急増している場合は、代わりにカスタムバナーを表示するほうがおそらく良いでしょう。


回答№2の13

いいえ、材料設計により スナックバーのスペック

スナックバーは簡単なメッセージを表示することで操作に関する軽量のフィードバックを提供します 画面の下部に表示されます。

デザインライブラリは材料設計仕様を実装しようとしているため、画面の下部以外の場所にスナックバーを配置することはできません CoordinatorLayout)。


回答№3の4

これが画面の上から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();
}
});

クレジット


回答№4の場合は1

それは簡単な方法ですることができます

最初にsnackbarを含めるレイアウトを作成します

<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);

回答№5の場合は1

さて、あなたはスナックバーのレイアウトパラメータを取得し、コード内の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();