【问题标题】:Third Party FloatingActionButton Library in CoordinatorLayoutCoordinatorLayout 中的第三方 FloatingActionButton 库
【发布时间】:2015-12-17 10:21:43
【问题描述】:

我正在尝试使用futuresimple's FloatingActionButton libraryCoordinatorLayout 中使用FloatingActionMenu,因此当我显示Snackbar 时,FAB 将向上移动,并且不会被Snackbar 隐藏。 FloatingActionMenu 运行良好,尽管我注意到第三方库在 CoordinatorLayout 中不起作用。

当我使用 Google 的支持库 FAB 时,CoordinatorLayout 按预期工作,尽管 FutureSimple 的库不是。 (它被Snackbar 隐藏了)。

如何使第三方库与CoordinatorLayout 一起使用?

fragment_comic.xml

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:text="@string/default_title"
    android:textAppearance="?android:textAppearanceLarge"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/alt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/title"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal"
    android:fadeScrollbars="false"
    android:gravity="center"
    android:maxLines="4"
    android:textColor="@color/black"
    android:paddingBottom="13dp"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:scrollbars="vertical"
    android:text="@string/default_alt"
    android:textAppearance="?android:textAppearanceMedium" />

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/alt"
    android:adjustViewBounds="false"
    android:layout_marginBottom="10dp"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:scaleType="fitCenter" />


</RelativeLayout>

<com.getbase.floatingactionbutton.FloatingActionsMenu
    android:id="@+id/famMain"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fab:fab_addButtonColorNormal="@color/material_orange"
    fab:fab_addButtonSize="normal"
    fab:fab_addButtonStrokeVisible="true"
    fab:fab_expandDirection="up"
    android:layout_gravity="bottom|end">

<com.getbase.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_random"
    android:src="@drawable/ic_random"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fab:fab_colorNormal="@color/material_orange"
    fab:fab_size="mini"/>

<com.getbase.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_download"
    android:src="@drawable/ic_download"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fab:fab_colorNormal="@color/material_orange"
    fab:fab_size="mini"/>

<com.getbase.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_browser"
    android:src="@drawable/ic_open_browser"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fab:fab_colorNormal="@color/material_orange"
    fab:fab_size="mini"/>

</com.getbase.floatingactionbutton.FloatingActionsMenu>

然后在我的 Java 类中,我使用

启动我的 FloatingActionsMenu
FloatingActionsMenu famView = (FloatingActionsMenu) getActivity().findViewById(R.id.famMain);

然后我将其设置为我的 Snackbar

Snackbar.make(famView, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show();

【问题讨论】:

    标签: android android-support-library floating-action-button android-coordinatorlayout


    【解决方案1】:

    Snackbar 覆盖 FloatingActionMenu 的原因是因为您将其设置为 Snackbar 的视图:

    Snackbar.make(famView, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show();
    

    您真正需要做的是在布局底部添加一个CoordinatorLayout,用于显示 Snackbar。您可以以 LinearLayout 方式设置它,使其显示在其他所有内容下方。这是您的 XML 的编辑版本:

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <android.support.design.widget.CoordinatorLayout
            xmlns:fab="http://schemas.android.com/apk/res-auto"
            android:id="@+id/coordinatorLayout"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1">
    
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:text="Test"
                    android:textAppearance="?android:textAppearanceLarge"
                    android:layout_centerHorizontal="true" />
    
                <TextView
                    android:id="@+id/alt"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/title"
                    android:layout_centerHorizontal="true"
                    android:layout_gravity="center_horizontal"
                    android:fadeScrollbars="false"
                    android:gravity="center"
                    android:maxLines="4"
                    android:textColor="@android:color/black"
                    android:paddingBottom="13dp"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:scrollbars="vertical"
                    android:text="Test Alt"
                    android:textAppearance="?android:textAppearanceMedium" />
    
                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_below="@+id/alt"
                    android:adjustViewBounds="false"
                    android:layout_marginBottom="10dp"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:scaleType="fitCenter" />
    
    
            </RelativeLayout>
    
            <com.getbase.floatingactionbutton.FloatingActionsMenu
                android:id="@+id/famMain"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                fab:fab_addButtonColorNormal="@android:color/black"
                fab:fab_addButtonSize="normal"
                fab:fab_addButtonStrokeVisible="true"
                fab:fab_expandDirection="up"
                android:layout_gravity="bottom|end">
    
                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/fab_random"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@android:color/black"
                    fab:fab_size="mini"/>
    
                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/fab_download"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@android:color/black"
                    fab:fab_size="mini"/>
    
                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/fab_browser"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@android:color/black"
                    fab:fab_size="mini"/>
    
            </com.getbase.floatingactionbutton.FloatingActionsMenu>
    
            <android.support.design.widget.FloatingActionButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/testFAB"
                android:layout_gravity="bottom|start"/>
    
        </android.support.design.widget.CoordinatorLayout>
    
        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/snackbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    

    然后,你可以得到这样的snackbar视图:

    CoordinatorLayout snackbar = (CoordinatorLayout) findViewById(R.id.snackbar);
    

    把它变成这样:

    Snackbar.make(snackbar, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show();
    

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多