У меня есть действующая плавающая кнопка действия внутри LinearLayout
. LinearLayout
он находится внутри одной вкладки SlidingTabLayout
. Я хочу, чтобы кнопка плавающего действия находилась над списком в первой вкладке, а также отображалась внутри второй вкладки в том же месте.Плавающая кнопка действия в ViewPager над спискомView
Так вот activity_main.xml
где FrameLayout
в нижней части для кнопки плавающих действий:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.stephenprotzman.o.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary"
android:elevation="2dp" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</android.support.v4.view.ViewPager>
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp" />
</LinearLayout>
И если это помогает, вот fab_layout.xml
где объявлена кнопке фактической плавающего действия.
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.stephenprotzman.o.FloatingActionButton
android:id="@+id/fab_1"
android:layout_width="@dimen/fab_size"
android:layout_height="@dimen/fab_size"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/fab_background"
android:elevation="@dimen/fab_elevation"
android:stateListAnimator="@animator/fab_anim">
<ImageView
android:layout_width="@dimen/fab_icon_size"
android:layout_height="@dimen/fab_icon_size"
android:layout_gravity="center"
android:duplicateParentState="true"
android:src="@drawable/fab_icons" />
</com.stephenprotzman.o.FloatingActionButton>
</FrameLayout>
Путь, который я в настоящее время он выкладывается кнопка плавающего действия внутри своего собственного участка LinearLayout
таким образом, представление списка просто останавливается, когда он попадет на кнопку. Плюс к этому заключается в том, что он действительно отображается на обеих вкладках SlidingTabLayout
, хотя все еще находится в его собственном разделе.
В идеальной ситуации я хотел бы, чтобы кнопка была в указанном месте (16 dp снизу и справа), но в верхней части списка на первой вкладке, а вторая вкладка имеет карту внутри это, поэтому я хотел бы, чтобы он был поверх этого.
Спасибо, я просмотрю его, но не могли бы вы представить какой-то контекст о том, что и почему вы делаете эти изменения? Кроме того, это не работает. Он помещает FAB над «SlidingTabLayout» внутри панели действий. – erp
Чтобы разместить «FloatingActionButton» над вашим «LinearLayout», вам нужно выставить его за его пределы. 'FrameLalyout' давайте сделаем именно это. Вы можете использовать 'layout_gravity =" bottom | right "' (я обновил свой ответ), чтобы поместить его в нижний правый угол. –
Спасибо, после нескольких хитростей к положению, я получил это, чтобы работать, как мне было нужно. – erp