如何在嵌套滚动视图中适应包含布局

DaV*_*iny 1 android android-layout

我在 NestedScrollView 中包含 ConstraintLayout 但遇到问题。\n当布局包含其与父级高度不匹配时。它意味着 ConstraintLayout 的底部到最后一个子视图。

\n\n

这是我的约束布局:

\n\n
 <?xml version="1.0" encoding="utf-8"?>\n\n<android.support.constraint.ConstraintLayout \n xmlns:android="http://schemas.android.com/apk/res/android"\n xmlns:app="http://schemas.android.com/apk/res-auto"\n xmlns:tools="http://schemas.android.com/tools"\n android:layout_width="match_parent"\n android:layout_height="match_parent"\n android:background="@color/background_card"\n android:layoutDirection="ltr">\n\n<ss.com.bannerslider.views.BannerSlider\n    android:id="@+id/image_banner_slider"\n    android:layout_width="match_parent"\n    android:layout_height="250dp"\n    android:adjustViewBounds="true"\n    android:scaleType="centerCrop"\n    app:defaultIndicators="circle"\n    app:interval="7000"\n    app:layout_constraintEnd_toEndOf="parent"\n    app:layout_constraintStart_toStartOf="parent"\n    app:layout_constraintTop_toTopOf="parent"\n    app:loopSlides="true"\n    tools:src="@drawable/horse_banner_1" />\n\n<com.example.davod.a4nal.Custom.CustomFontTextView\n    android:id="@+id/txt_welcome"\n    android:layout_width="wrap_content"\n    android:layout_height="wrap_content"\n    android:layout_marginEnd="16dp"\n    android:layout_marginTop="16dp"\n    android:text="\xd8\xa8\xd9\x87 \xda\x86\xd9\x87\xd8\xa7\xd8\xb1\xd9\x86\xd8\xb9\xd9\x84 \xd8\xae\xd9\x88\xd8\xb4 \xd8\xa2\xd9\x85\xd8\xaf\xdb\x8c\xd8\xaf"\n    android:textColor="@color/text_title_color"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintEnd_toEndOf="parent"\n    app:layout_constraintTop_toBottomOf="@+id/image_banner_slider" />\n\n<Button\n    android:id="@+id/btn_sell_horse"\n    android:layout_width="150dp"\n    android:layout_height="wrap_content"\n    android:layout_marginStart="8dp"\n    android:layout_marginTop="56dp"\n    android:background="@drawable/selector_button_login"\n    android:text="\xd9\x81\xd8\xb1\xd9\x88\xd8\xb4 \xd8\xa7\xd8\xb3\xd8\xa8"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintEnd_toEndOf="parent"\n    app:layout_constraintHorizontal_bias="0.5"\n    app:layout_constraintStart_toEndOf="@+id/btn_request_horse"\n    app:layout_constraintTop_toBottomOf="@+id/txt_welcome" />\n\n<Button\n    android:id="@+id/btn_request_horse"\n    android:layout_width="150dp"\n    android:layout_height="wrap_content"\n    android:layout_marginEnd="8dp"\n    android:layout_marginTop="96dp"\n    android:background="@drawable/selector_button_login"\n    android:text=" \xd8\xaf\xd8\xb1\xd8\xae\xd9\x88\xd8\xa7\xd8\xb3\xd8\xaa \xd8\xa7\xd8\xb3\xd8\xa8"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintEnd_toStartOf="@+id/btn_sell_horse"\n    app:layout_constraintHorizontal_bias="0.5"\n    app:layout_constraintHorizontal_chainStyle="packed"\n    app:layout_constraintStart_toStartOf="parent"\n    app:layout_constraintTop_toBottomOf="@+id/image_banner_slider" />\n\n<Button\n    android:id="@+id/btn_sell_horse_object"\n    android:layout_width="150dp"\n    android:layout_height="wrap_content"\n    android:layout_marginStart="8dp"\n    android:layout_marginTop="16dp"\n    android:background="@drawable/selector_button_login"\n    android:text="\xd9\x81\xd8\xb1\xd9\x88\xd8\xb4 \xd8\xaa\xd8\xac\xd9\x87\xdb\x8c\xd8\xb2\xd8\xa7\xd8\xaa"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintEnd_toEndOf="parent"\n    app:layout_constraintHorizontal_bias="0.5"\n    app:layout_constraintStart_toEndOf="@+id/btn_request_horse_object"\n    app:layout_constraintTop_toBottomOf="@+id/btn_sell_horse" />\n\n<Button\n    android:id="@+id/btn_request_horse_object"\n    android:layout_width="150dp"\n    android:layout_height="wrap_content"\n    android:layout_marginEnd="8dp"\n    android:layout_marginTop="16dp"\n    android:background="@drawable/selector_button_login"\n    android:text="\xd8\xaf\xd8\xb1\xd8\xae\xd9\x88\xd8\xa7\xd8\xb3\xd8\xaa \xd8\xaa\xd8\xac\xd9\x87\xdb\x8c\xd8\xb2\xd8\xa7\xd8\xaa"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintEnd_toStartOf="@+id/btn_sell_horse_object"\n    app:layout_constraintHorizontal_bias="0.5"\n    app:layout_constraintHorizontal_chainStyle="packed"\n    app:layout_constraintStart_toStartOf="parent"\n    app:layout_constraintTop_toBottomOf="@+id/btn_request_horse" />\n\n<Button\n    android:id="@+id/btn_gravitation_horse"\n    android:layout_width="317dp"\n    android:layout_height="wrap_content"\n    android:layout_marginBottom="16dp"\n    android:layout_marginTop="16dp"\n    android:background="@drawable/selector_button_login"\n    android:text="\xda\xa9\xd8\xb4\xd8\xb4"\n    android:textSize="@dimen/standard_size_title"\n    app:layout_constraintBottom_toBottomOf="parent"\n    app:layout_constraintEnd_toEndOf="@+id/btn_sell_horse_object"\n    app:layout_constraintHorizontal_bias="1.0"\n    app:layout_constraintStart_toStartOf="@+id/btn_request_horse_object"\n    app:layout_constraintTop_toBottomOf="@+id/btn_sell_horse_object"\n    app:layout_constraintVertical_bias="0.0" />\n\n\n</android.support.constraint.ConstraintLayout>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的主要布局:

\n\n
<?xml version="1.0" encoding="utf-8"?>\n\n<android.support.v4.widget.DrawerLayout \n  xmlns:android="http://schemas.android.com/apk/res/android"\n  xmlns:app="http://schemas.android.com/apk/res-auto"\n  xmlns:tools="http://schemas.android.com/tools"\n  android:id="@+id/drawer_layout"\n  android:layout_width="match_parent"\n  android:layout_height="match_parent"\n  android:layoutDirection="rtl"\n  tools:context="com.example.davod.a4nal.Activity.MainActivity">\n\n<android.support.design.widget.CoordinatorLayout\n    android:id="@+id/coordinator_layout"\n    android:layout_width="match_parent"\n    android:layout_height="match_parent">\n\n    <android.support.design.widget.AppBarLayout\n        android:id="@+id/app_bar_layout"\n        android:layout_width="match_parent"\n        android:layout_height="wrap_content"\n        app:theme="@style/Base.ThemeOverlay.AppCompat.Dark">\n\n        <android.support.v7.widget.Toolbar\n            android:id="@+id/toolbar"\n            android:layout_width="match_parent"\n            android:layout_height="?attr/actionBarSize"\n            android:background="@color/colorPrimary"\n            app:layout_scrollFlags="scroll|enterAlways">\n\n            <com.example.davod.a4nal.Custom.CustomFontTextView\n                android:layout_width="wrap_content"\n                android:layout_height="wrap_content"\n                android:layout_marginRight="40dp"\n                android:text="\xda\x86\xd9\x87\xd8\xa7\xd8\xb1\xd9\x86\xd8\xb9\xd9\x84"\n                android:textColor="@color/title_of_toolbar"\n                android:textSize="@dimen/standard_size_title" />\n        </android.support.v7.widget.Toolbar>\n\n    </android.support.design.widget.AppBarLayout>\n\n\n    <android.support.v4.widget.NestedScrollView\n        android:layout_width="match_parent"\n        android:layout_height="wrap_content"\n        app:layout_behavior="@string/appbar_scrolling_view_behavior">\n\n        <include\n            layout="@layout/activity_main_bottom_layout"\n            android:layout_width="match_parent"\n            android:layout_height="match_parent" />\n\n    </android.support.v4.widget.NestedScrollView>\n\n\n    <android.support.design.widget.FloatingActionButton\n        android:id="@+id/float_action_button"\n        android:layout_width="wrap_content"\n        android:layout_height="wrap_content"\n        android:layout_gravity="bottom|left"\n        android:layout_margin="12dp"\n        app:fabSize="normal"\n        app:srcCompat="@drawable/vc_add_black_24dp"\n        tools:ignore="VectorDrawableCompat" />\n\n </android.support.design.widget.CoordinatorLayout>\n\n <android.support.design.widget.NavigationView\n    android:id="@+id/navigation_view"\n    android:layout_width="300dp"\n    android:layout_height="match_parent"\n    android:layout_gravity="start"\n    android:layoutDirection="rtl"\n    app:headerLayout="@layout/navigation_header_layout"\n    app:menu="@menu/navigation_menu" />\n\n\n </android.support.v4.widget.DrawerLayout>\n
Run Code Online (Sandbox Code Playgroud)\n\n

你有解决方案吗?\n我的 ConstraintLayout 与父级不匹配,布局高度是换行内容。

\n\n

截屏

\n

小智 5

尝试将其添加到您的NestedScrollView布局中

android:layout_height="match_parent"
android:fillViewport="true"
Run Code Online (Sandbox Code Playgroud)