#android #android-studio #android-fragments #android-bottomnav
Вопрос:
Я создал новое действие нижней навигации с помощью мастера Android studio. Проблема, по-видимому, заключается в макете activity_main. Представление фрагмента не распространяется на верхнюю часть экрана, вместо этого оно закрыто нижней панелью навигации.
Что бы я ни делал, я не могу сдвинуть это с мертвой точки.
Это XML — код:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@ id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@ id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
<fragment
android:id="@ id/nav_host_fragment_activity_main"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/mobile_navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
Комментарии:
1. Поделитесь своим xml-кодом
2. @Sniffer Это всего лишь XML-код по умолчанию, созданный Android studio, но вот он
Ответ №1:
Удалите нижеприведенное заполнение из корневого макета:
android:paddingTop="?attr/actionBarSize"
Комментарии:
1. почему мастер Android studio добавил это?
2. Это странно для меня, но, вероятно, потому, что заполнение равно
actionBarSize
, я думаю, они считают, что вы могли бы реализовать обычайtoolBar
какactionBar
в этом пространстве3.Возможно, мастер просматривает вашу тему, определенную в
AndroidManifest.xml
<application>
теге. Если вы используете.NoActionBar
тему, она, вероятно, не добавит эту строку. Но это всего лишь дикое предположение….
Ответ №2:
Вам нужно установить
android:layout_width="0dp"
android:layout_height="0dp"
чтобы переключиться с «нормального размера» на «применить размер ограничения»
Комментарии:
1. Панель навигации и Фрагмент больше не перекрываются, но пространство вверху остается.