【问题标题】:Floating Action Button in linearLayout线性布局中的浮动操作按钮
【发布时间】:2017-01-06 16:22:45
【问题描述】:

如何将 FAB 添加到名为 layout_ejercicios 的第二个 linearLayout 中?

如果我这样添加它不会出现。

我想在右下角的 layout_ejercicios 中添加 FAB。

我尝试将 FAB 包含在 layout_ejercicios 之外,但它始终出现在左上角。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/green">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/main_content"

        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:id="@+id/activity_crear_entrenamiento"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <include
                android:id="@+id/tool_bar"
                layout="@layout/toolbar" />


            <LinearLayout
                android:id="@+id/layout_ejercicios"
                android:layout_width="match_parent"
                android:layout_height="300dp"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/layout_info">

                <include
                    android:id="@+id/tool_bar_ejercicios"
                    layout="@layout/toolbar" />

                <android.support.design.widget.FloatingActionButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|right"
                    android:layout_margin="16dp"
                    android:src="@drawable/ic_action_name"
                    app:layout_anchor="@id/layout_ejercicios"
                    app:layout_anchorGravity="bottom|right|end" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/layout_notas"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/layout_ejercicios"
                android:orientation="vertical">

                <include
                    android:id="@+id/tool_bar_notas"
                    layout="@layout/toolbar" />

                <EditText
                    android:id="@+id/textAreaInformacion"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:gravity="top|start"
                    android:hint="Aqui..."
                    android:inputType="textMultiLine"
                    android:lines="6"
                    android:overScrollMode="always"
                    android:scrollHorizontally="false"
                    android:scrollbarStyle="insideInset"
                    android:scrollbars="vertical"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/layout_info"
                android:layout_width="wrap_content"
                android:layout_height="65dp"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/tool_bar"
                android:orientation="horizontal">

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/horaInicio"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <EditText
                        android:id="@+id/etHoraInicio"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:ems="5"
                        android:hint="Hora inicio"
                        android:inputType="time"
                        android:maxLength="5"
                        android:textSize="25dp" />
                </android.support.design.widget.TextInputLayout>

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/ubicacion"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="50dp">

                    <EditText
                        android:id="@+id/etUbicacion"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:ems="7"
                        android:hint="Ubicacion"
                        android:inputType="text"
                        android:maxLength="20"
                        android:textSize="25sp" />
                </android.support.design.widget.TextInputLayout>
            </LinearLayout>
        </RelativeLayout>
    </android.support.design.widget.CoordinatorLayout>
</ScrollView>

【问题讨论】:

  • 你需要设置一个 LinearLayout 方向。
  • 这行得通。现在它出现了,但总是在布局的顶部。如果我更改 layout_gravity 或 layout_anchorGravity,FAB 保持在顶部。
  • 尝试使用 FrameLayout 而不是 LinearLayout。
  • 这篇文章 - 有评论放按钮最后为我工作:stackoverflow.com/a/37107900/2162226

标签: android floating-action-button


【解决方案1】:
  1. 从线性布局 layout_ejercicios 中移除 FAB
  2. 将 FAB 添加到相对布局 activity_crear_entrenamiento 并使用 android:layout_alignRight="@+id/layout_ejercicios" 和 android:layout_alignBottom="@+id/layout_ejercicios" 进行设置

这样

<RelativeLayout
    android:id="@+id/activity_crear_entrenamiento"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <include
        android:id="@+id/tool_bar"
        layout="@layout/toolbar" />

    <LinearLayout
        android:id="@+id/layout_ejercicios"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/layout_info">

        <include
            android:id="@+id/tool_bar_ejercicios"
            layout="@layout/toolbar" />

    </LinearLayout>

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/layout_ejercicios"
        android:layout_alignRight="@+id/layout_ejercicios"
        android:layout_margin="16dp"
        android:src="@drawable/ic_action_name"
        app:layout_anchor="@id/layout_ejercicios"
        app:layout_anchorGravity="bottom|right|end" />

</RelativeLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多