【问题标题】:android Floating Action Button change view anchor dynamicallyandroid Floating Action Button动态改变视图锚点
【发布时间】:2015-10-03 04:45:03
【问题描述】:

我在片段的布局文件中有一个浮动操作按钮,表示添加数据的操作。我使用了设计支持库的协调布局,并在 CoordinationLayout 内部放置了包含 2 个视图和一个浮动操作按钮的线性布局。

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

        <LinearLayout
            android:id="@+id/dataLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"
            android:animateLayoutChanges="true"
            android:orientation="vertical">

            <View
                android:id="@+id/viewA"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.6"
                android:background="@android:color/holo_purple"
             />

            <View
                android:id="@+id/viewB"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.4"

                android:background="@android:color/holo_orange_light"
            />

        </LinearLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/actionAddMembers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_add_white_24dp"
            app:borderWidth="0dp"
            app:elevation="4dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_gravity="bottom|right"/>
    </android.support.design.widget.CoordinatorLayout>

现在最初保存 2 个视图的线性布局将具有 visibility=gone。当我单击浮动操作按钮时,我想将视图放在前面。当视图出现在屏幕上时,我想将 FAB 锚定到视图 A 的末尾。我已经看到我可以将锚点放在布局文件中,这使我的视图成为静态的。我想在运行时更改这一点,当视图 A 出现在点击 FAB 时。我在FLoatingActionButton 对象中找不到任何相关方法来动态更改锚点。 请建议我如何完成这项任务

【问题讨论】:

    标签: android material-design android-design-library floating-action-button


    【解决方案1】:

    您可以分配anchorId,检索CoordinatorLayout.LayoutParams

    你可以使用这样的代码:

    CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
    p.setAnchorId(xxxx);
    fab.setLayoutParams(p);
    

    【讨论】:

    • 但是如果FAB不是直接在CoordinatorLayout中,例如放在FrameLayout中呢?
    • 这在 Kotlin 中会怎样?
    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 2020-10-02
    相关资源
    最近更新 更多