- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 NestedScrollView
中有一个 ConstraintLayout
。 ConstraintLayout
包含一堆 View ,但最后一个 View
可以有一个动态高度来填充底部空间(如果有)但它也需要一个最小高度,如果没有足够的空间。
为了论证,这里有一个例子。
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout_height="match_parent">
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintHeight_min="1500dp"
android:background="@color/red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>
如您所见,我已经放入了 ConstraintLayout
版本,但它不起作用。显然这些值大得离谱,但这只是为了测试。
如果我不在 NestedScrollView
上设置 fillViewport="true"
,则 ConstraintLayout
的高度为 0。当我设置时fillViewport
,ConstraintLayout
不滚动,只是填满屏幕。
如何设置 View ,使其扩展到 ConstraintLayout
的底部,它应该与视口(viewport)一样大,但如果我的 View 不是 minHeight
那么我们允许滚动吗?
我正在使用 ConstraintLayout
库的版本 1.0.2
。
我希望看到的是一直到父级底部的存在,但如果该尺寸小于 1500dp
,则 View 会滚动。
我像这样输入 1500dp android:layout_height="1500dp"
并且 View 相应地滚动。
更新 1
似乎是我将布局放在 FragmentViewPager
中。 app:layout_constraintHeight_min
属性不受尊重,它只匹配视口(viewport)的高度。
我还尝试从 fragment 中取出 NestedScrollView
并将 ViewPager
放入其中,但还是没有用。
最佳答案
将此属性添加到您想要拉伸(stretch)的 View 中:
app:layout_constraintHeight_default="spread"
我做了一个小应用程序来演示。没有 Java 逻辑可言,但这是布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="#caf">
<TextView
android:id="@+id/one"
android:layout_width="0dp"
android:layout_height="48dp"
android:gravity="center"
android:text="hello world"
android:background="#fff"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="@+id/two"/>
<TextView
android:id="@+id/two"
android:layout_width="0dp"
android:layout_height="48dp"
android:gravity="center"
android:text="hello world"
android:background="#eee"
app:layout_constraintTop_toBottomOf="@+id/one"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="@+id/three"/>
<TextView
android:id="@+id/three"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="hello world"
android:background="#ddd"
app:layout_constraintHeight_default="spread"
app:layout_constraintHeight_min="300dp"
app:layout_constraintTop_toBottomOf="@+id/two"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>
当底部 View 小于剩余可用空间时,底部 View 会拉伸(stretch)以填充视口(viewport),并且无法滚动:
底部 View 在大于剩余可用空间时保持固定高度,这使得滚动成为可能:
关于android - 在 ConstraintLayout 中使用 minHeight 查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46654512/
我在 RelativeLayout 中使用了 ImageView 和 Textview。 我的期望: Textview 高度应该是 wrap_content Imageview 应该填满剩余的空间 I
我正在尝试根据其初始高度(当 SizeToContent="WidthAndHeight")设置可调整大小窗口的 MinHeight/MinWidth。 我看到了几个答案/解决方案: http://w
在附图中,我希望按钮列与图像的高度相匹配,但我也希望按钮列有一个最小高度。 它正确匹配图像的高度,但不遵守 minHeight,并且会向下平滑按钮。 我正在为按钮列设置这些属性: 最佳答案 我不知道
我在 Excel 中创建了一个小宏,它插入一个具有特定名称的新工作表并进行一些调整(格式、背景颜色、列宽等)。 这也很有效。 我的问题是我想为某些行提供属性“Autofit”和最小高度。最后一个有光学
我使用这个标记: 如果我只有 3 个项目(每行 40dp 高度),我就有 2 行和 80dp 高度。如果我更改 android:layout_height=120dp,我的高度将达到预期的 120d
有人试过为应用程序设置最小高度以在牛轧糖多窗口模式下使用吗? 试过了, 我的引用是这样的:https://developer.android.com/guide/topics/ui/mu
今天我更新了项目中的支持依赖项,发现新的 CardView 存在一些问题。 以前的版本: compile 'com.android.support:cardview-v7:21.0.0-rc1@a
我目前正在构建一个用于个人目的的小型 UI 应用程序,但遇到了一个问题。这是一些代码: public void start(Stage stage) throws Exception { Pa
有一个xml属性:android:minHeight="?android:attr/listPreferredItemHeight"。要以编程方式设置它,我想我需要使用 textView.setMin
我怎样才能拥有一个基于内部容器的动态 minHeight?我有: 然后在 jQuery 上: $( "#outer-div" ).resizable({ containment:
我构建的工具栏与大多数工具栏一样,minHeight 设置为 actionBarSize: 但是,如果我删除这个属性,就完全没有区别了。工具栏保持其 actionBarSize,即使我删除菜单并将
我有一个 ScrollView,其中的内容不一定超过它的大小。假设它是一种表单,在出现错误时,它会扩展以添加错误消息,然后它会超过 ScrollView 大小,这就是我使用该滚动条的原因。 问题是我希
我有一个 WPF 窗口,其中包含一个具有 MinWidth 和 MinHeight 的 UserControl。如何防止用户将 Window 的大小调整到违反 UserControl 的最小尺寸的程度
我正在使用 MVVM 模式在 WPF 中编写应用程序。在我的应用程序中,我有一个 IPopupWindowService我用它来创建一个弹出对话框窗口。 因此,要在弹出窗口中显示 ViewModel,
我有一个可调整大小的元素,其中有一个可拖动和可调整大小的元素。 可调整大小的元素没有 maxHeight,但我想将 minHeight 设置为子元素的高度加上距顶部的位置。 根据子级的父级设置子级大小
我正在使用 jQuery 的可调整大小函数。我正在尝试对可调整大小的 div 使用动态 minHeight。 这是我到目前为止尝试过的: $( ".header-area" ).resizable({
我整个下午都在努力让 minHeight 属性起作用。 我想要的是 linearMe 布局: 当 ListView 只有几个元素时,从屏幕底部拉伸(stretch)到 ListView 的底部。 例如
这是我的代码。 我在xml中设置了线性布局的minHeight。但我想以编程方式设置它。我在这个线性布局中有两张卡片。 我想根据我的两张卡片的高度设置 minHeight。 最佳答案 您可
我正在使用Summernote作为富文本编辑器,但是 minHeight 和 maxHeight 初始化选项似乎没有效果? (它可以与 height 选项配合使用。) 我搜索了其他帖子,但找不到具有完
我想要一个可以具有最小高度或 wrap_content 的 View ,如果屏幕尺寸较小,如果屏幕尺寸较大,则占据其余空间。此 View 是其父 View 的中间 subview 。 目前,我在 Li
我是一名优秀的程序员,十分优秀!