Android 隐藏约束布局,如果子项为空,则将子项分组
在我的Android 隐藏约束布局,如果子项为空,则将子项分组,android,android-imageview,Android,Android Imageview,在我的SQLite数据库中,我使用路径作为字符串,并且我使用Viewbinder采用视图来查看my ExpandableListView。路径由glide库转换为图像。我遇到的问题是,即使没有字符串,文本后面也总是有空格(因此没有图像显示)…如果我的sqlitedatabase中没有路径(大小写为空或null),我应该如何隐藏该空间 PS1:约束布局将2个图像视图分组,并具有特定的高度(100dp)…因为如果存在图像,并且我没有固定约束布局的高度(例如,如果使用了包裹内容),我会遇到此问题(同时
SQLite数据库中,我使用路径作为字符串,并且我使用Viewbinder
采用视图来查看my ExpandableListView
。路径由glide库
转换为图像。我遇到的问题是,即使没有字符串,文本后面也总是有空格(因此没有图像显示)…如果我的sqlitedatabase中没有路径(大小写为空或null),我应该如何隐藏该空间
PS1:约束布局将2个图像视图分组,并具有特定的高度(100dp)…因为如果存在图像,并且我没有固定约束布局的高度(例如,如果使用了包裹内容),我会遇到此问题(同时将imageview的布局高度作为包裹内容):
(图片周围的空间太大)
第二种情况:如果我将约束布局设置为固定布局高度(90dp)的包裹内容和图像视图…看起来不错,但图像模糊:
总而言之:imageview应该保持高度作为包裹内容,以避免看起来模糊,约束布局高度应该固定,这样我就不会在图片周围获得太多空间。因此,我的问题的唯一解决方案是隐藏约束布局,如果mysqlite数据库中两个视图中都没有url,则对imagesview进行分组。谢谢很多
PS:child2和child3=xml文件中ImageView的id
xmlfile中child2的示例代码:
<android.support.constraint.ConstraintLayout
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@+id/child1"
android:orientation="horizontal">
<ImageView
android:id="@+id/child2"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
如果要隐藏任何视图,可以使用.setVisibility()代码>。
这里有三种可能的选择:
View.VISIBLE,View.INVISIBLE,View.GONE
“可见”显然会使视图可见,而“不可见”会将其隐藏,而“消失”也会将其隐藏,但也不会保留视图通常会占用的空间,这意味着如果视图消失,您所谈论的这个空间也应该消失
编辑:我认为这也可以应用于您的约束列表。您可以执行如下操作,只需获取对约束列表的引用即可:
if(urls == null) {
constraintLayout.setVisibility(View.GONE);
}
如果我正确理解你的问题,你应该在没有路径时隐藏你的照片视图。你可以写这样的东西
if (urls == null) {
photoView.setVisibility(View.INVISIBLE);
}
请看这篇文章。我已经对它进行了编辑并详细解释了这件事。我试图隐藏对图像进行分组的constraintlayount视图我同意Zouhair,constraintLayout.setVisibility(View.GONE);但是你说,那个应用程序崩溃了,奇怪的是我创建了一个测试项目,它工作了,也许你还有另一个问题,你有什么错误?你会在这里找到所有东西。。谢谢:ConstraintLayout ConstraintLayout=(ConstraintLayout)findViewById(R.id.gridview);如果(url==null){constraintLayout.setVisibility(View.GONE);}我添加了这个,但是应用程序一直崩溃..并且constraintLayout没有运行如果应用程序一直崩溃,你能分享你的logcat输出吗?我在这里解释了这个问题,谢谢你的回答
if (urls == null) {
photoView.setVisibility(View.INVISIBLE);
}