提问人:Timothée Jeannin 提问时间:10/7/2012 最后编辑:EricSchaeferTimothée Jeannin 更新时间:8/23/2022 访问量:3794
LinearLayout minHeight 不适用于 weigth=“1”
LinearLayout minHeight not working with weigth="1"
问:
我整个下午都在尝试让属性工作。minHeight
我想要的是布局:linearMe
- 当 ListView 只有几个元素时,从屏幕底部延伸到 ListView 的底部。
- 例如,我需要能够用图片填充 linearMe 布局。
随着 ListView 变大,我希望布局能够:linearMe
- 具有固定高度(位于屏幕底部时)和 ListView 以允许滚动。
我的问题是布局越来越小,因为 ListView 中的元素更多。当 listView 有足够的元素来填充屏幕时,布局就消失了。在这种情况下,看起来是无用的。linearMe
linearMe
minHeight
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/linearMe"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FF0000"
android:minHeight="200dp" />
</LinearLayout>
我希望你能帮助我!:)
答:
0赞
Givi
10/7/2012
#1
同时添加到 ListView。
将它们(list & linearMe)属性都更改为Remove 'minHeight。android:layout_weight="1"
android:layout_height
"match_parent"
这样一来,每个视图将占据屏幕的一半。
评论
0赞
Timothée Jeannin
10/7/2012
那不是我想要的......例如,我想利用所有可用空间,因为 ListView 中只有一个项目。
1赞
Givi
10/7/2012
那么为什么不将 maxHieght 设置为 ListView呢?最好通过代码而不是xml动态地做这样的事情
1赞
Timothée Jeannin
10/7/2012
你确定maxHeight存在吗?我不这么认为。developer.android.com/reference/android/widget/ListView.html
0赞
theelfismike
10/7/2012
#2
您可能希望尝试使用“View”而不是“LinearLayout”来尝试间隔码布局。ViewGroup 类有时处理布局的方式略有不同。
评论
0赞
Timothée Jeannin
10/7/2012
那么我该如何向其添加内容呢?
0赞
theelfismike
10/7/2012
将 LinearLayout 保留为根布局,但将 View 用于间隔视图。(给定上面的示例代码)。
0赞
Timothée Jeannin
10/7/2012
假设我想在布局中放一张图片。您的解决方案如何实现?linearMe
0赞
theelfismike
10/7/2012
事实并非如此。给定您的示例代码,看起来您只是尝试在屏幕底部设置背景颜色。
0赞
Timothée Jeannin
10/7/2012
好吧,对不起。我会澄清我的问题。:)
0赞
Shahood ul Hassan
8/23/2022
#3
如果您愿意用作父容器,则以下 xml 应满足您的目的:ConstraintLayout
<androidx.constraintlayout.widget.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">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constrainedHeight="true"
app:layout_constraintBottom_toTopOf="@id/linearMe"
app:layout_constraintTop_toTopOf="parent"
tools:listitem="@android:layout/list_content" />
<LinearLayout
android:id="@+id/linearMe"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#FF0000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/list"
app:layout_constraintHeight_min="200dp"
android:orientation="vertical"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
我所做的是,我定义了约束来链接两者并相互链接。 将确保 的最小高度为 200dp。 确保当有更多项目时,它不会躲在后面。list
linearMe
app:layout_constraintHeight_min="200dp"
linearMe
app:layout_constrainedHeight="true"
list
linearMe
我无法用一些数据来测试它来填充.您可以尝试一下并在此处发布您的反馈。ListView
评论
ConstraintLayout