如何滚动浮动动作菜单的范围

时间:2018-05-13 10:56:15

标签: android scroll overlap floating-action-menu

enter image description here

红色区域是scrollView,蓝色区域是浮动动作菜单。

问题是,如果我触摸蓝色区域,我就无法滚动。

我想在任何地方滚动scrollView,绿色区域或蓝色区域。

如何解决此问题。

这是MainActivity代码的xml文件。

<FrameLayout
    android:id="@+id/frameLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="8">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v4.view.ViewPager>


    <com.github.clans.fab.FloatingActionMenu
        android:id="@+id/fam"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp">

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab_qr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_edit"
            app:fab_label="QR코드"/>

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab_address"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_add"
            app:fab_label="연락처로 추가"/>


        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_delete"
            app:fab_label="카카오톡 ID로 추가"/>


        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab_recommend"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_delete"
            app:fab_label="추천친구"/>

    </com.github.clans.fab.FloatingActionMenu>

</FrameLayout>

和viewPager的代码

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="친구"/>

    <!--<ListView-->
        <!--android:id="@+id/listView"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="match_parent">-->
    <!--</ListView>-->
    <com.example.kakaotalk3.NonScrollListView

        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </com.example.kakaotalk3.NonScrollListView>

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

类似的问题已经reported here了。请看一看。

我引用了该问题以及该问题中报告的解决方案。

  

我找到导致这个问题的原因。在我的代码中,它是onClick监听器   所有fab_menu。即使fab菜单关闭,它也会覆盖所有触摸。所以   如果你需要这个监听器,你需要在fab时手动打开监听器   菜单已打开,并在关闭时关闭监听器。我删除后   听众fab菜单很棒。

因此,我建议覆盖onMenuToggleListener,如下所示,并在菜单处于关闭状态时禁用fab按钮上的on click侦听器。

fabMenu.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() {
    @Override
    public void onMenuToggle(boolean opened) {
        if (opened) {

        } else {

        }
    }
});

希望有所帮助!

答案 1 :(得分:0)

确保您未在​​fab菜单上注册Click监听器

like-fabm.setOnClickListener(this);

如果您注册然后将其删除,希望它能正常工作!