我猜你已经看到了新的Android设计指南,新的“浮动动作按钮”,又名“FAB”

比如这个粉色按钮:

我的问题听起来很愚蠢,我已经尝试了很多东西,但是把这个按钮放在两个布局的交集的最佳方法是什么?

在上面的例子中,这个按钮被完美地放置在我们想象中的ImageView和relativeLayout之间。

我已经尝试了很多调整,但我相信有一个正确的方法。


当前回答

现在它是官方设计支持库的一部分。

在你的gradle里:

compile 'com.android.support:design:22.2.0'

http://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html

其他回答

这是另外一个免费的Android浮动动作按钮库。 它有许多自定义,需要SDK版本9及更高版本

完整演示视频

dependencies {
    compile 'com.scalified:fab:1.1.2'
}

将此添加到您的gradle文件中

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.1'
}

到activity_main.xml

<android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <LinearLayout
                android:id="@+id/viewOne"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.6"
                android:background="@android:color/holo_blue_light"
                android:orientation="horizontal"/>

            <LinearLayout
                android:id="@+id/viewTwo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.4"
                android:background="@android:color/holo_orange_light"
                android:orientation="horizontal"/>

        </LinearLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/floatingButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="16dp"
            android:clickable="true"
            android:src="@drawable/ic_done"
            app:layout_anchor="@id/viewOne"
            app:layout_anchorGravity="bottom|right|end"
            app:backgroundTint="#FF0000"
            app:rippleColor="#FFF" />

    </android.support.design.widget.CoordinatorLayout>

你可以在http://www.ahotbrew.com/android-floating-action-button/上下载android studio项目的完整示例

试试这个库(javadoc在这里),最小API级别是7:

dependencies {
    compile 'com.shamanland:fab:0.0.8'
}

它提供了通过Theme、xml或java-code自定义小部件的能力。

使用起来非常简单。根据提升动作模式,有普通和迷你实现。

<com.shamanland.fab.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_my"
    app:floatingActionButtonColor="@color/my_fab_color"
    app:floatingActionButtonSize="mini"
    />

尝试编译演示应用程序。有详尽的例子:浅色和深色主题,使用ListView,在两个视图之间对齐。

在AppCompat 22中,FAB支持旧设备。

在build.gradle(app)中添加新的支持库:

compile 'com.android.support:design:22.2.0'

然后你可以在你的xml中使用它:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:src="@android:drawable/ic_menu_more"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp" />

要使用elevation和pressedTranslationZ属性,需要namespace app,所以将这个namespace添加到你的布局中: xmlns:应用= " http://schemas.android.com/apk/res-auto "

现在它是官方设计支持库的一部分。

在你的gradle里:

compile 'com.android.support:design:22.2.0'

http://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html