В моем файле макета у меня есть LinearLayout в качестве родительского макета, в котором я отображал ImageView с помощью appBarLayout, и есть Tablayout, которые содержат listview. Мне нужно отображать FloatingActionButton во всех этих макетах.
Когда я включаю FAB в LinearLayout, он не отображает FAB.
Если я использую FrameLayout вместо LinearLayout в качестве родительского макета, он отображает fab, но искажает изображение и заставляет исчезнуть все другие представления (проверьте изображение: https://drive.google.com/file/d/1OTqXIMVGh_7sRtkLYu7Snn0fTP-e4VCE/view?usp=sharing). Пожалуйста, помогите мне в этом, вот мой xml-код:
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:fab = "http://schemas.android.com/apk/res-auto"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".MainActivity"
android:orientation = "vertical">
<android.support.design.widget.AppBarLayout
android:layout_width = "match_parent"
android:layout_height = "170dp"
android:gravity = "center"
android:elevation = "0dp"
android:id = "@+id/appbarid">
<ImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:padding = "10dp"
android:src = "@drawable/imagep"
tools:ignore = "contentDescription"/>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.TabLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
app:tabGravity = "fill"
app:tabMode = "scrollable"
android:id = "@+id/tablayout_id"
app:tabTextColor = "@color/tabtextcolor"
app:tabIndicatorColor = "@color/tabindicatorcolor"
android:background = "@color/colorPrimary" />
<android.support.v4.view.ViewPager
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:id = "@+id/viewpager_id" >
</android.support.v4.view.ViewPager>
<com.github.clans.fab.FloatingActionMenu
android:id = "@+id/menu"
android:layout_above = "@id/viewpager_id"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentBottom = "true"
android:layout_alignParentRight = "true"
android:layout_marginRight = "10dp"
android:layout_marginBottom = "10dp"
android:layout_marginLeft = "10dp"
fab:menu_fab_size = "normal"
fab:menu_showShadow = "true"
fab:menu_shadowColor = "#66000000"
fab:menu_shadowRadius = "4dp"
fab:menu_shadowXOffset = "1dp"
fab:menu_shadowYOffset = "3dp"
fab:menu_colorNormal = "@color/colorPrimary"
fab:menu_colorPressed = "@color/colorAccent"
fab:menu_colorRipple = "#ffffff"
fab:menu_animationDelayPerItem = "50"
fab:menu_icon = "@drawable/plus"
fab:menu_buttonSpacing = "0dp"
fab:menu_labels_margin = "0dp"
fab:menu_labels_showAnimation = "@anim/fab_slide_in_from_right"
fab:menu_labels_hideAnimation = "@anim/fab_slide_out_to_right"
fab:menu_labels_paddingTop = "4dp"
fab:menu_labels_paddingRight = "8dp"
fab:menu_labels_paddingBottom = "4dp"
fab:menu_labels_paddingLeft = "8dp"
fab:menu_labels_padding = "8dp"
fab:menu_labels_textColor = "#FFFFFF"
fab:menu_labels_textSize = "14sp"
fab:menu_labels_cornerRadius = "3dp"
fab:menu_labels_colorNormal = "#333333"
fab:menu_labels_colorPressed = "#444444"
fab:menu_labels_colorRipple = "#66FFFFFF"
fab:menu_labels_showShadow = "true"
fab:menu_labels_singleLine = "false"
fab:menu_labels_ellipsize = "none"
android:layout_gravity = "bottom|right"
fab:menu_labels_maxLines = "-1"
fab:menu_labels_position = "left"
fab:menu_openDirection = "up"
fab:menu_backgroundColor = "@android:color/transparent"
fab:menu_fab_label = "Menu"
fab:menu_fab_show_animation = "@anim/my_show_animation"
fab:menu_fab_hide_animation = "@anim/my_hide_animation">
<com.github.clans.fab.FloatingActionButton
android:id = "@+id/myFAB"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
app:fab_colorNormal = "#2196f3"
app:fab_colorPressed = "#40c4ff"
app:fab_colorRipple = "#99FFFFFF"
android:src = "@drawable/parts"
fab:fab_size = "mini"
fab:fab_label = "Share the app with your friends" />
<com.github.clans.fab.FloatingActionButton
android:id = "@+id/myFAB2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
app:fab_colorNormal = "#7e57c2"
app:fab_colorPressed = "#9575cd"
app:fab_colorRipple = "#99ffffff"
android:src = "@drawable/post"
fab:fab_size = "mini"
fab:fab_label = "Send Suggestion/Feedback" />
</com.github.clans.fab.FloatingActionMenu>
</LinearLayout>
Измените верхний LinearLayout
на CoordinatorLayout
и добавьте app:layout_behavior = "@string/appbar_scrolling_view_behavior"
в FAB.
Вы должны поместить кнопку действия Floating внутри CoordinatorLayout вместе с вашим LinearLayout. Когда вы делаете это, кнопка действия всегда должна плавать сверху, и вы получите классное поведение, например, если вы показываете Toast to Fab автоматически перемещается вверх.
Прочтите это, чтобы получить некоторую помощь по реализации: https://material.io/develop/android/components/floating-action-button/