android - 如何适应嵌套 ScrollView 中的布局

标签 android android-layout

我在 NestedScrollView 中包含了一个 ConstraintLayout,但我遇到了问题。 当布局包括它的高度不与父级匹配时。这意味着 ConstraintLayout 的底部到最后一个 subview 。

这是我的约束布局:

 <?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout 
 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:background="@color/background_card"
 android:layoutDirection="ltr">

<ss.com.bannerslider.views.BannerSlider
    android:id="@+id/image_banner_slider"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"
    app:defaultIndicators="circle"
    app:interval="7000"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:loopSlides="true"
    tools:src="@drawable/horse_banner_1" />

<com.example.davod.a4nal.Custom.CustomFontTextView
    android:id="@+id/txt_welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="16dp"
    android:layout_marginTop="16dp"
    android:text="به چهارنعل خوش آمدید"
    android:textColor="@color/text_title_color"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/image_banner_slider" />

<Button
    android:id="@+id/btn_sell_horse"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="56dp"
    android:background="@drawable/selector_button_login"
    android:text="فروش اسب"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/btn_request_horse"
    app:layout_constraintTop_toBottomOf="@+id/txt_welcome" />

<Button
    android:id="@+id/btn_request_horse"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginTop="96dp"
    android:background="@drawable/selector_button_login"
    android:text=" درخواست اسب"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintEnd_toStartOf="@+id/btn_sell_horse"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintHorizontal_chainStyle="packed"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/image_banner_slider" />

<Button
    android:id="@+id/btn_sell_horse_object"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/selector_button_login"
    android:text="فروش تجهیزات"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/btn_request_horse_object"
    app:layout_constraintTop_toBottomOf="@+id/btn_sell_horse" />

<Button
    android:id="@+id/btn_request_horse_object"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/selector_button_login"
    android:text="درخواست تجهیزات"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintEnd_toStartOf="@+id/btn_sell_horse_object"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintHorizontal_chainStyle="packed"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btn_request_horse" />

<Button
    android:id="@+id/btn_gravitation_horse"
    android:layout_width="317dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/selector_button_login"
    android:text="کشش"
    android:textSize="@dimen/standard_size_title"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/btn_sell_horse_object"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="@+id/btn_request_horse_object"
    app:layout_constraintTop_toBottomOf="@+id/btn_sell_horse_object"
    app:layout_constraintVertical_bias="0.0" />


</android.support.constraint.ConstraintLayout>

这是我的主要布局:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout 
  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/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layoutDirection="rtl"
  tools:context="com.example.davod.a4nal.Activity.MainActivity">

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

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

            <com.example.davod.a4nal.Custom.CustomFontTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="40dp"
                android:text="چهارنعل"
                android:textColor="@color/title_of_toolbar"
                android:textSize="@dimen/standard_size_title" />
        </android.support.v7.widget.Toolbar>

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


    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <include
            layout="@layout/activity_main_bottom_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </android.support.v4.widget.NestedScrollView>


    <android.support.design.widget.FloatingActionButton
        android:id="@+id/float_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|left"
        android:layout_margin="12dp"
        app:fabSize="normal"
        app:srcCompat="@drawable/vc_add_black_24dp"
        tools:ignore="VectorDrawableCompat" />

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

 <android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:layoutDirection="rtl"
    app:headerLayout="@layout/navigation_header_layout"
    app:menu="@menu/navigation_menu" />


 </android.support.v4.widget.DrawerLayout>

你有解决办法吗? 我的 ConstraintLayout 与父级不匹配,布局高度是包装内容。

Screen Shot

最佳答案

尝试将此添加到布局中的 NestedScrollView

android:layout_height="match_parent"
android:fillViewport="true"

关于android - 如何适应嵌套 ScrollView 中的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48132292/

相关文章:

android - viewpager 中 2 个页面之间的转换不能顺利进行

android - 如何刷新通话记录

android - 如何设置 autoLink ="web"链接的样式?

android - 如何在android中制作圆角半径

android - cordova-splash 无法处理未处理的错误事件

Android ndk 问题 socket 和 std 问题

android - AndEngine-停止所有声音和音乐运行时-更改引擎的AudioOptions

android - 如何在android中保持按钮的固定纵横比

java - Android:使默认全息按钮不透明

android - 如何在 Android 中检测平板设备?