确定Y轴上对象大小的属性。请不要使用此标记,它在您的帖子中没有分类值。
在android中,如何创建一个具有最大高度并包裹内容的滚动视图,基本上它垂直包裹内容,但有最大高度? 我试过 在android中,如何创建一个具有最大高度并包裹内容的滚动视图,基本上它垂直包裹内容,但具有最大高度? 我试过了 <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxHeight="200dp" android:layout_alignParentBottom="true" > <LinearLayout android:id="@+id/maincontainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView> 但这不起作用? 您可以将其添加到任何视图(覆盖从视图继承的类中的 onMeasure) @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (maxHeight > 0){ int hSize = MeasureSpec.getSize(heightMeasureSpec); int hMode = MeasureSpec.getMode(heightMeasureSpec); switch (hMode){ case MeasureSpec.AT_MOST: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.AT_MOST); break; case MeasureSpec.UNSPECIFIED: heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST); break; case MeasureSpec.EXACTLY: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.EXACTLY); break; } } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 我扩展了 ScrollView 并添加了代码来实现此功能: https://gist.github.com/JMPergar/439aaa3249fa184c7c0c 希望有用。 您可以通过编程方式完成。 private static class OnViewGlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener { private final static int maxHeight = 130; private View view; public OnViewGlobalLayoutListener(View view) { this.view = view; } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) view.getLayoutParams().height = maxHeight; } } 并将监听器添加到视图中: view.getViewTreeObserver() .addOnGlobalLayoutListener(new OnViewGlobalLayoutListener(view)); 当视图高度发生变化时,监听器将调用 onGlobalLayout() 方法。 可以通过将视图包装到 ConstraintLayout 并使用 layout_constraintHeight_max 属性来完成。 <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="200dp"> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHeight_max="wrap" app:layout_constraintVertical_bias="0"> ... </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout> 在上面的示例中,父级 ConstraintLayout 高度限制为 200dp,子级 ScrollView 高度包裹内容,直到小于 200dp。请注意,app:layout_constraintVertical_bias="0" 将子级 ScrollView 与父级的顶部对齐,否则它将居中。 要设置滚动视图高度,您必须同时使用 2 个 linerlayout ,然后将 scrool view 设置为它们的子级,然后设置中间 linerlayout 布局:限制滚动视图高度的高度。 1.) 创建一个类来处理将最大高度设置为用户传递的值: public class OnViewGlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener { private Context context; private int maxHeight; private View view; public OnViewGlobalLayoutListener(View view, int maxHeight, Context context) { this.context = context; this.view = view; this.maxHeight = dpToPx(maxHeight); } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) { ViewGroup.LayoutParams params = view.getLayoutParams(); params.height = maxHeight; view.setLayoutParams(params); } } public int pxToDp(int px) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); return dp; } public int dpToPx(int dp) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); return px; } } 2.) 将其附加到视图并传递 DP 中的最大高度: messageBody.getViewTreeObserver() .addOnGlobalLayoutListener( new OnViewGlobalLayoutListener(messageBody, 256, context) ); 感谢@harmashalex 的灵感。我进行了修改,因为设置布局参数对 @harma 的代码不起作用。此外,dp 到 px 的转换对于减轻对它的疑惑是必要的。 对harmashalex答案进行一些修改,我可以为任何视图传递所需的最大高度: import android.view.View; import android.view.ViewTreeObserver; public class MaxHeightForAnyView implements ViewTreeObserver.OnGlobalLayoutListener{ private int maxHeight = 130; private View view; public MaxHeightForAnyView(View view, int maxHeight) { this.view = view; this.maxHeight = maxHeight ; } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) view.getLayoutParams().height = maxHeight; } } 只需将侦听器设置为 oncreate 中具有所需高度的任何视图即可: txtShowTrans.getViewTreeObserver().addOnGlobalLayoutListener(new MaxHeightForAnyView(txtShowTrans, 600)); 在这里您可以像这样设置 Scrollview 的高度 -: <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentBottom="true" > <LinearLayout android:id="@+id/maincontainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView>
100vh 在 Safari iOS“单选项卡”配置上无法正常工作
我使用 Angular 将 iframe 加载到 html 中。 在我的 ts 上我有 ngOnInit(): 无效...
我已经尝试过问题底部列出的来源中的代码。所以,到目前为止,我能够获得设备的物理和逻辑高度,屏幕键盘的逻辑高度,但我被卡住了......
如何在获取小部件的高度以及颤振中可用工作区域的高度时解决此错误?
我正在计算两种情况下可用的有效空间:(01)当屏幕键盘不在屏幕上时,以及(02)当屏幕键盘在屏幕上时。有效空间是指可用空间...
有了这个CSS 身体 { 高度:100%; } 。容器 { 位置:绝对; 边框:1px 红色虚线; 左:10 像素; 顶部:10 像素; 高度:400像素; 宽度:400px; 显示:网格; 溢出:自动; } ...
嗨,这个问题确实很简单,但无法弄清楚。 我想用图像填充浏览器,以便无论用户在浏览器中设置大小,我的图像都会填充内容。 我也需要
例如,对于一个带有classname图标的div,将宽度设置为15%后,如何适当设置高度,使这个div容器成为正方形? 。图标 { 宽度:15%; } 我已经尝试过...
我不明白为什么线段树的高度是O(logn)。 https://dzone.com/articles/binary-trees-part-1 根据上面的文章,有 n 个节点的满二叉树的最大高度是 (n-1)/2 ...
我的 xamarin 表单项目中有一个如下所示的编辑器。 当我在上面输入消息时,我需要根据字符数增加编辑器的高度。 这是我的完整代码...
我有一个位置为绝对的div,我希望它足够高,以便当我一直向下滚动时它到达页面底部。换句话说,它应该延伸文档的整个高度...
我想了差不多一天了。但我找不到任何解决我的问题的方法。 有没有办法用滚动条设置自动高度 div,因为到目前为止我正在使用固定高度,但我看到了
根据条形是正数还是负数,自动将 x 轴文本调整到 y=0 的上方或下方
我可以在该图中添加哪行代码,以便如果条形为正,则 x 轴标签出现在高度 y=0 的正下方;如果条形为负,则 x 轴标签出现在高度 y=0 的正上方? 我还有另一个需要的情节...
Jetpack Compose:如何使 FlowRow 中的所有项目具有相同的高度
我在 FlowRow 中放置了一些动态文本可组合项,但我似乎无法使它们具有相同的高度。对于普通的 Row,您可以在 Row 上使用 .height(Intrinsic.Min) 与 .
我想做一个切换,每当单击元素时就会切换元素的高度和宽度。 让 isBig = false 如果(是大){ main.style.width = "100px"; 主要.st...
我遇到了 WordPress 网站上手风琴中包含的外部 iframe 的问题。 这是:https://nomoreply.co.uk/6mm-preprimed-tile-backing-boards/ 在“数量
这是 HTML: 测试 这是 CSS: #内部{ 向左飘浮; 高度:100%; } 经 Chr 检查...
所以我想制作一个div容器,我给它一个固定的高度,并希望它自动适应其中的内容的宽度,即使它超过屏幕宽度的100%。 只需声明 wi...
如何在第一个 Div 中提供更多数据时动态增加第二个 div 的高度无标题页面
无标题页面 #t2 { 宽度:...</desc> <question vote="0"> <pre><code><html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <style type="text/css"> #t2 { width: 87px; top: 49px; left: -566px; } #t1 { width: 87px; } </style> </head> <body> <form id="form1" runat="server"> <div style="height: 171px; width: 391px"> <div id="Div2" style="position:absolute; top: 65px; left: 14px;"> sdsdf<br /> asfaesrestret<br /> asf<br /> asdfas<br /> asdfaasdfasfsad<br /> hhb<br /> jh</div> <div id="t1" style="position:absolute; top: 65px; left: 111px;"> yyyyyyyyyyyyy </div> <div id="Div1" style="position: absolute; width: 87px;position:absolute; top: 168px; left: 12px;"> xxxxxxxxxxxxxxx </div> </div> </form> </body> </html> </code></pre> <p>嗨,我是 css 新手,请帮助我如何在 Div2 中提供更多数据时动态增加高度?主div的高度也需要增加。我已将位置设置为绝对位置,但不确定如何根据 Div2 上数据的增加来移动 div。请建议??预先感谢。</p> <p>-斯里尼</p> </question> <answer tick="false" vote="0"> <p>我建议您为两个 div 使用 div 包装器,并使用百分比而不是固定高度值。</p> <p><strong>编辑:</strong></p> <p>然后执行以下操作:</p> <pre><code><html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <style type="text/css"> #t2 { width: 87px; top: 49px; left: -566px; } #t1 { width: 87px; } </style> </head> <body> <form id="form1" runat="server"> <div style="height: 171px; width: 391px"> <div id="wrapper" style="position:absolute;"> <div id="Div2" style="top: 65px; left: 14px; background: red;"> sdsdf<br /> asfaesrestret<br /> asf<br /> asdfas<br /> asdfaasdfasfsad<br /> hhb<br /> jh</div> <div id="t1" style="position:absolute; top: 65px; left: 111px;"> yyyyyyyyyyyyy </div> <div id="Div1" style="width: 87px;position:relative; top: 0px; left: 12px; background: green;"> xxxxxxxxxxxxxxx </div> </div> </div> </form> </body> </html> </code></pre> <p>我为 div 设置了背景颜色,这样你就会明白我的意思了。 本质上,我添加了一个具有绝对位置的包装 div。 Div1 和 Div2 现在是相对的。 Div1 有一个 top:0 属性,不与 Div2 留下任何间隙。</p> </answer> <answer tick="false" vote="0"> <p>Works crossbrowser 将 100 替换为您想要的默认高度</p> <pre><code>min-height: 100px; height: auto !important; height: 100px; </code></pre> </answer> <answer tick="false" vote="0"> <p>您可以使用 JavaScript 动态更改元素属性。 例如</p> <pre><code>document.getElementById("Div1").style.width= "900"; </code></pre> </answer> </body></html>
为什么我的右边方块不是100%高度? 我大致可以理解为什么。 因为那里的内容并没有占据 100% 的高度,但是为什么会发生这种情况呢?我想要英雄形象-