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);
}