Intereting Posts
Android SurfaceHolder.unlockCanvasAndPost () не вызывает перерисовку Android adb не позволит мне вводить команды Android – как получить электронную почту пользователя с помощью facebook sdk 4+ Android 4: не может отклонить уведомление, проверив Android ShowDialog: IllegalStateException: не удается выполнить это действие после onSaveInstanceState Ведение позиции прокрутки при добавлении в ListView с обратной бесконечной прокруткой Разница между кликабельными ImageView и ImageButton Как создать этот тип кисти для краски в андроиде Как добавить две новые колонки для Android SQLite Database? Предоставление пользовательского текста для диалогового окна разрешения Android M Исключение при использовании файлов dexing: Перевод был прерван Как взаимодействовать между Android Broadcast Receiver и RemoteService Использовать layout_marginLeft в стиле кнопки, применяемом в качестве темы? ActionBar с AppCompat actionBarItemBackground не работает Программирование различных макетов для разных версий в Android

Кнопка плавающего действия не отображается над recyclerview (которая находится внутри DrawerLayout)

Я пытаюсь получить FAB над recyclerview, который в моем случае будет охватывать весь экран. FAB не отображает даже recyclerview пуст. Ниже приведен мой xml-код.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context="com.technistan.ledger.CreateLedger" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/tool_bar" layout="@layout/tool_bar" ></include> <FrameLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:paddingLeft="2dp" android:paddingRight="2dp" android:id="@+id/recyclerView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <android.support.design.widget.FloatingActionButton android:id="@+id/myFAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="20dp" app:elevation="4dp" /> </FrameLayout> </LinearLayout> <fragment android:id="@+id/fragment_navigation_drawer" android:layout_width="280dp" android:layout_height="match_parent" android:layout_gravity="start" app:layout="@layout/fragment_navigation_drawer" android:name="com.technistan.ledger.NavigationDrawerFragment" tools:layout="@layout/fragment_navigation_drawer" /> </android.support.v4.widget.DrawerLayout> 

В предварительном просмотре отображается плавающая кнопка в порядке, как в нижней привязке; https://www.dropbox.com/s/18u5pt5v6kkkibj/Screen%20Shot%202015-09-13%20at%201.19.20%20PM.png?dl=0

Но когда я запускаю приложение, FAB не отображается. Я пробовал много комбинаций, но не смог добиться успеха. Я попробовал это над списком без навигатора (простое действие, и он работал там, т.е. отображался над списком).

Любая помощь будет оценена ребятами. благодаря

[EDIT:] Я думаю, проблема в том, что родительский макет, т.е. андроид.support.v4.widget.DrawerLayout, у меня была копия, вставившая код от начала до конца в другую пустую деятельность, и она показывает плавающую кнопку над ней там , Но все еще неспособный понять, как решить эту проблему, я должен показать кнопку плавающего действия внутри Drawerlayout.

Попробуй вот так:

Удалите все макеты.

Держите только одного родителя, это CoordinatorLayout .

Внутри CoordinatorLayout поместите как ваш RecyclerView и FloatingActionButton .

CoordinatorLayout должен автоматически расположить вашу панель инструментов, recycler и fab, так как запрограммирован для обработки компонентов библиотеки поддержки дизайна.

Вот пример. Вы можете использовать RecyclerView вместо FrameLayout (который динамически загружает фрагменты во время выполнения). Обычно я использую RecyclerView в другом Fragment и загружаю фрагмент здесь во время выполнения. Это предотвращает очистку файлов xml.

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:id="@+id/layout_main" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> </android.support.design.widget.AppBarLayout> <!-- Main layout for fragment placing --> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" > </FrameLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fabBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action" android:layout_gravity="bottom|right" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" app:fab_colorNormal="@color/pink" app:fab_colorPressed="@color/pink_pressed" app:borderWidth = "0dp" /> </android.support.design.widget.CoordinatorLayout> <!-- Nav drawer --> <android.support.design.widget.NavigationView android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/nav_header" app:itemIconTint="@color/pink_pressed" app:itemTextColor="@color/primary_text" app:menu="@menu/nav_menu" /> </android.support.v4.widget.DrawerLayout> 

Я только что создал новую активность и скопировал туда весь код и там отлично работает. Я все еще не знаю, что случилось. Но это сработало для меня таким образом. Я сравнивал строки за строкой в ​​двух действиях, и они одинаковы. Его просто, что кнопка плавающего действия отображается в новой активности, а не в старой.

Любой способ благодарить за помощь со стороны сообщества, который пытался.

Это должно быть из-за androidmanifest.xml. Когда вы добавляете новую активность, она автоматически добавляется в androidmanifest.xml с правом разрешения.

Вы можете использовать LinearLayout, что, похоже, не проблема.

Я уверен, что ваше решение будет исправлено, переместив RecyclerView под кнопкой FAB.

Другими словами, в макете XML переместите блок кнопки FAB кода над блоком кода RecyclerView.

Пример:

  <android.support.design.widget.FloatingActionButton android:id="@+id/myFAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="20dp" app:elevation="4dp" /> <android.support.v7.widget.RecyclerView android:paddingLeft="2dp" android:paddingRight="2dp" android:id="@+id/recyclerView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> 

Вопросы заказа из-за того, как система андроидов привлекает свои взгляды.

Вы можете увидеть другие артефакты, но теперь кнопка FAB должна быть видимой.