CoordinatorLayout Делает просмотры не размещенными

1

Извините за мой плохой английский. Я пытался создать прокручиваемую панель инструментов с видом переработчика, используя Coordinatorlayout. Прокрутка работает нормально, но виды попадают под панель инструментов, как макет обновления смахивания, показанный в Изображение 174551. Activity_main.xml Я реализую фрагмент в FrameLayout mobile_container

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.naveed.youtubepro.activity.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:title="@string/app_name">
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.AppBarLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/mobile_container"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </FrameLayout>
        <me.majiajie.pagerbottomtabstrip.PageNavigationView
            android:id="@+id/navigation"
            android:elevation="8dp"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:layout_alignParentBottom="true"
            android:background="#FFF"
            app:menu="@menu/bottom_navigation_items"/>

    </LinearLayout>

</android.support.design.widget.CoordinatorLayout >

Макет фрагмента

<android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    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"
    android:id="@+id/mainandroid.support.v4.widget.SwipeRefreshLayout">
    <com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/recyclerViee"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
Теги:
android-coordinatorlayout

3 ответа

1
Лучший ответ

Делай как это. Надеюсь, это работает.

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/txt_forget_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:title="@string/app_name">
            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.AppBarLayout>

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <FrameLayout
                android:id="@+id/mobile_container"
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="0dp">

            </FrameLayout>
            <me.majiajie.pagerbottomtabstrip.PageNavigationView
                android:id="@+id/navigation"
                android:elevation="8dp"
                android:layout_width="match_parent"
                android:layout_height="56dp"
                android:background="#FFF"
                app:menu="@menu/bottom_navigation_items"/>

        </LinearLayout>

    </LinearLayout>



</android.support.design.widget.CoordinatorLayout >
  • 0
    Это сработало, но панель инструментов не прокручивается
  • 0
    @Brown Возможно, вы знаете, что «Панель инструментов должна быть зафиксирована в действии» всегда.
1

Ваш LinearLayout содержит представление рециркулятора как android:layout_height="match_parent" поэтому он займет всю высоту экрана, потому что родительский элемент является корневым макетом.

Вы должны сделать так, чтобы этот LinearLayout принимал всю высоту минус высота панели заголовка

Вы можете сделать это легко:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1">
    <!-- frame and bottom navigation -->
</LinearLayout>

============== ОБНОВЛЕНИЕ ==============

На самом деле вам даже не нужен этот LinearLayout, попробуйте это (как предлагает Рахул Кушваха, оберните все это в LinearLayout, но вам не нужен внутренний LinearLayout):

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/txt_forget_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:title="@string/app_name">
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/mobile_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">

    </FrameLayout>
    <me.majiajie.pagerbottomtabstrip.PageNavigationView
        android:id="@+id/navigation"
        android:elevation="8dp"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:background="#FFF"
        app:menu="@menu/bottom_navigation_items"/>

</LinearLayout>

  • 0
    виды внутри макета теперь невидимы
0

Установите свойство LinearLayout для android:layout_marginTop="?attr/actionBarSize"

  • 0
    Я уже пробовал это, но когда прокручивается панель инструментов, между панелью инструментов и другими раскладками появляется пробел

Ещё вопросы

Сообщество Overcoder
Наверх
Меню