2015-07-20 41 views
2

我更新我的当前应用程序使用的小吃店,在谷歌规范他们展示使用它们http://www.google.com/design/spec/components/snackbars-toasts.html#snackbars-toasts-specs添加利润率小吃吧观点

例A的各种方法:

Snackbar with margin

实例B:

Snackbar pinned to layout

这里是我的代码大气压:

Snackbar snackbar = Snackbar.make(mParentLayout, displayMessage,  
    Snackbar.LENGTH_LONG); 
    snackbar.setAction(actionMessage, mClickListener); 
    snackbar.show(); 

我得到了例B的结果,

我怎样才能增加利润?

回答

1

控制Snackbar显示屏的关键是使用android.support.design.widget.CoordinatorLayout布局。没有它,您的小吃店将始终显示在小设备的底部和大型设备的左下角。注意:您可以使用CoordinatorLayout作为布局的根ViewGroup或布局树结构中的任意位置。

添加它后,请确保您传递CoordinatorLayout(或子)作为Snackbar.make()命令的第一个参数。

通过添加填充或边距到您的CoordinatorLayout,您可以控制位置并从屏幕底部移动Snackbar。

材料设计指南规定了Snackbar的最小和最大宽度。在小型设备上,您会看到它填满了屏幕的宽度,而在平板电脑上,您会看到Snackbar达到最大宽度并且不会填满屏幕宽度。

1

试试这个:

Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "message", Snackbar.LENGTH_LONG); 

View snackBarView = snackbar.getView(); 
      LayoutParams params = new LayoutParams(
LayoutParams.WRAP_CONTENT,  
LayoutParams.WRAP_CONTENT); 

params.setMargins(left, top, right, bottom); 

snackBarView.setLayoutParams(params); 

snackbar.show(); 
7

比赛义德的回答比较好,可以得到默认的小吃吧布局PARAMS和修改它们,只要你想:

public static void displaySnackBarWithBottomMargin(Snackbar snackbar, int sideMargin, int marginBottom) { 
    final View snackBarView = snackbar.getView(); 
    final CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) snackBarView.getLayoutParams(); 

    params.setMargins(params.leftMargin + sideMargin, 
       params.topMargin, 
       params.rightMargin + sideMargin, 
       params.bottomMargin + marginBottom); 

    snackBarView.setLayoutParams(params); 
    snackbar.show(); 
}