上下移动浮动操作按钮以避免被快餐栏阻挡

时间:2015-01-12 23:38:00

标签: android floating floating-action-button

我使用this library来实现浮动操作栏,当屏幕上出现小吃栏时,我似乎无法找到移动按钮的方法。甚至可以使用该库吗?

5 个答案:

答案 0 :(得分:39)

对于将来寻找答案的人。

用作浮动操作按钮的父布局的协调器布局将自动为您处理动画效果。

浮动操作按钮具有默认行为,可检测添加的Snackbar视图,并相应地将按钮设置为小吃栏高度上方的动画。

Floating Action Button Behavior

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/clayout">
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|right"
    android:layout_marginBottom="16dp"
    android:layout_marginRight="16dp"
    android:src="@drawable/filter_icon"
    app:rippleColor="@color/colorGray"
    app:fabSize="normal"
    app:borderWidth="0dp"/>
</android.support.design.widget.CoordinatorLayout>

然后我们的SnackBar代码将使用Coordinatorlayout [here clayout]作为parentlayout,如下所示:

Snackbar.make(clayout, "Click on row to know more details", Snackbar.LENGTH_LONG)
                    .setAction("OK", new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                        }
                    }).show();

答案 1 :(得分:9)

尝试使用android.support.design.widget.FloatingActionButtonCoordinatorLayout

然后试试这个:

fabView = findViewById(R.id.floating_action_button_id);
Snackbar.make(fabView, "Hi", Snackbar.LENGTH_LONG).show()

答案 2 :(得分:7)

您可以切换到android.support.design.widget.FloatingActionButton并使用CoordinatorLayout为您的观看次数指定行为。

  

CoordinatorLayout是一个超级动力的FrameLayout。

     

CoordinatorLayout适用于两个主要用例:

     
      
  1. 作为顶级应用程序装饰或镀铬布局
  2.   
  3. 作为与一个或多个子视图进行特定交互的容器
  4.         

    通过为CoordinatorLayout的子视图指定行为,您可以提供许多   单个父母中的不同交互也可以   彼此互动。视图类可以指定默认行为   当使用DefaultBehavior作为CoordinatorLayout的子级时使用   注释

         

    行为可用于实现各种交互和   其他布局修改范围从滑动抽屉和   面板可以滑动 - 可以忽略的元素和粘在其他元素上的按钮   元素移动和动画。

         

    CoordinatorLayout的孩子可能有一个锚点。此视图ID必须   对应于CoordinatorLayout的任意后代,但它   可能不是锚定的孩子本身或锚定的后代   儿童。这可用于相对于其他视图放置浮动视图   任意内容窗格。

答案 3 :(得分:2)

您可以使用将parentLayout设置为FAB,

Snackbar.make(parentLayout, R.string.snackbar_text,Snackbar.LENGTH_LONG).setAction(R.string.snackbar_action, myOnClickListener).show();

答案 4 :(得分:0)

科特林:

Selection.Delete Shift:=xlUp