Android AppCompat Snackbar未在平板电脑上居中

Android AppCompat Snackbar未在平板电脑上居中,android,material-design,android-appcompat,Android,Material Design,Android Appcompat,我正在尝试显示一个snackbar(通过appcompat)来向用户显示消息。它在手机上运行得非常好,但在我买的平板电脑上却很好 及 我用来生成snackbar的代码是 Snackbar.make(mHomeContainer, R.string.rate_snackbar, Snackbar.LENGTH_LONG) .setAction("Rate", ...) .show(); 任何关于如何使这个小吃条居中的指导都将不胜感激 <android.s

我正在尝试显示一个snackbar(通过appcompat)来向用户显示消息。它在手机上运行得非常好,但在我买的平板电脑上却很好

我用来生成snackbar的代码是

Snackbar.make(mHomeContainer, R.string.rate_snackbar, Snackbar.LENGTH_LONG)
        .setAction("Rate", ...)
        .show();
任何关于如何使这个小吃条居中的指导都将不胜感激

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:id="@+id/status_bar"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:background="@color/main"
        android:elevation="8dp"/>

    <include layout="@layout/toolbar" />

    <RelativeLayout
        android:id="@+id/home_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/main_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true" />

        <ListView
            android:id="@+id/home_search_list"
            android:visibility="gone"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#88000000"/>

    </RelativeLayout>
</LinearLayout>

<include layout="@layout/navigation_list" />

</android.support.v4.widget.DrawerLayout>


您需要使用Coordinator布局来实现这一点。下面是一个描述如何做到这一点的示例。此外,您现在可能需要提供用于非平板电脑和平板电脑的布局文件,以便保留手机的全宽。如果您同时使用FAB、app bar和Snackbar,这也是您需要使用的布局组件。

在Design Support Library的v22.2.0中,Snackbar的默认重力值仅为gravity.BOTTOM


在v22.2.1中,此问题已得到修复:

根据,Snacker在平板电脑/桌面上不应为全宽。谢谢,我将其更新为“居中”,而不是全宽什么是
mHomeContainer
mHomeContainer
是否填满了整个屏幕宽度?这是一个全宽相对图发布平板电脑布局如果我在某个片段中嵌套了片段-一个在左侧,一个在右侧,该怎么办。然后点击左边的某个项目,我想在窗口的底部中心显示一个小吃条?我必须在底部的父片段中添加协调器布局,然后单击我必须传递给父片段调用的某个项目,该调用应该显示快餐店?这不是很有用,尽管这样做似乎会脱离一般的材料设计原则。也许信息应该在片段中,或者这是Toast更好的用途,这取决于您试图实现的目标?我还没有尝试使用多个协调器布局,但也许这对您来说是可能的?