Android 如何在另一个视图上显示浮动操作按钮?

Android 如何在另一个视图上显示浮动操作按钮?,android,android-layout,floating-action-button,Android,Android Layout,Floating Action Button,如何在另一个视图上显示浮动操作按钮 我需要在recyclerview顶部显示浮动操作按钮(FAB)。 我正在尝试的是——在一个特定的FAB(fabX)项目点击上显示一组FAB(比如FabA、FabB、FabC)。该组晶圆厂将在晶圆厂单击时展开和折叠。所有这些都需要漂浮在recyclerview的顶部 下面是我正在使用的代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

如何在另一个视图上显示浮动操作按钮

我需要在recyclerview顶部显示浮动操作按钮(FAB)。 我正在尝试的是——在一个特定的FAB(fabX)项目点击上显示一组FAB(比如FabA、FabB、FabC)。该组晶圆厂将在晶圆厂单击时展开和折叠。所有这些都需要漂浮在recyclerview的顶部

下面是我正在使用的代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@null">

        <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:alpha="0.8"
        android:paddingTop="20dp"/>

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

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

        <android.support.v7.widget.RecyclerView
        android:id="@+id/rcView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:clipToPadding="false"
        android:scrollbars="vertical"
        android:layout_weight="13"/>

        <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:minHeight="200dp"
        android:layout_weight="2"
        android:layout_marginBottom="10dp">

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fabC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            app:backgroundTint="@color/colorFabC"
            app:elevation="6dp"
            app:pressedTranslationZ="12dp"
            android:layout_gravity="bottom|end"
            android:layout_marginRight="180dp"
            android:src="@drawable/icfab_C"/>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fabB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            app:backgroundTint="@color/colorFaB"
            app:elevation="6dp"
            app:pressedTranslationZ="12dp"
            android:layout_gravity="bottom|end"
            android:layout_marginRight="120dp"
            android:src="@drawable/icfab_B"/>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fabA"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            app:elevation="6dp"
            app:backgroundTint="@color/colorFabA"
            app:pressedTranslationZ="12dp"
            android:layout_gravity="bottom|end"
            android:layout_marginRight="60dp"
            android:src="@drawable/icfab_A"/>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fabX"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            app:elevation="6dp"
            app:backgroundTint="@color/colorFabX"
            app:pressedTranslationZ="12dp"
            android:src="@drawable/ic_X"
            android:layout_marginRight="5dp"/>

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

    </LinearLayout>

    </LinearLayout>

如果我想显示recyclerView顶部的按钮,我需要做哪些更改?

如果我理解你的问题,您可以做的是将回收器视图框布局或相对布局的根目录改为线性布局。

我相信您需要在布局文件的根目录下使用它们。@RASchedule如果有帮助,请将答案向上投票。
    public class MainActivity extends AppCompatActivity implements View.OnClickListener
    {.......
    .......

        private Boolean isFabOpen = false;
        private FloatingActionButton fab_X, fab_A, fab_B, fab_C;
        private Animation fab_open,fab_close,rotate_forward,rotate_backward;

        @Override
        protected void onCreate(Bundle savedInstanceState)
        {....
        initialise_fab();}

        @Override
        protected void onStop() {
        super.onStop();
        resetFabs(); }

        private void initialise_fab(){
        fab_X = (FloatingActionButton)findViewById(R.id.fabX);
        fab_A = (FloatingActionButton)findViewById(R.id.fabA);
        fab_B = (FloatingActionButton)findViewById(R.id.fabB);
        fab_C = (FloatingActionButton)findViewById(R.id.fabC);

        fab_open = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fab_open);
        fab_close = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fab_close);
        rotate_forward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_forward);
        rotate_backward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_backward);

        fab_X.setOnClickListener(this);
        fab_A.setOnClickListener(this);
        fab_B.setOnClickListener(this);
        fab_C.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
        int id = v.getId();
        switch (id){
            case R.id.fabX:
            animateFAB();

            break;
            case R.id.fabA:
            ....
            break;
            case R.id.fabB:
            ....
            break;

            case R.id.fabC:
            ....
            break;
        }
        }

        public void animateFAB(){

        if(isFabOpen){
            fab_X.startAnimation(rotate_backward);
            fab_A.startAnimation(fab_close);
            fab_B.startAnimation(fab_close);
            fab_C.startAnimation(fab_close);
            fab_A.setClickable(false);
            fab_B.setClickable(false);
            fab_C.setClickable(false);
            isFabOpen = false;
        } else {
            fab_X.startAnimation(rotate_forward);
            fab_A.startAnimation(fab_open);
            fab_B.startAnimation(fab_open);
            fab_C.startAnimation(fab_open);
            fab_A.setClickable(true);
            fab_B.setClickable(true);
            fab_C.setClickable(true);
            isFabOpen = true;
        }   }

        private void resetFabs()
        {isFabOpen = false;

        fab_X.startAnimation(rotate_backward);
        fab_A.startAnimation(fab_close);
        fab_B.startAnimation(fab_close);
        fab_C.startAnimation(fab_close);
        fab_A.setClickable(false);
        fab_B.setClickable(false);
        fab_C.setClickable(false);
        }
    }