Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使3个视图可见,然后根据条件隐藏其他视图_Java_Android_Imageview_Android Recyclerview - Fatal编程技术网

Java 使3个视图可见,然后根据条件隐藏其他视图

Java 使3个视图可见,然后根据条件隐藏其他视图,java,android,imageview,android-recyclerview,Java,Android,Imageview,Android Recyclerview,我在Java上有一个RecyclerView项目,其中包含几个基于某些条件可见的图像。但是,我注意到,如果满足大多数条件,许多图像将可见,并且将超出其父布局的范围 以下说明了我的意图: RecyclerView中的每个图像的工作代码都很简单,例如: if (iJobType == 1) { imageView1.setVisibility(View.VISIBLE) } else { imageView1.setVisibility(View.GONE) } if (iJobType

我在Java上有一个RecyclerView项目,其中包含几个基于某些条件可见的图像。但是,我注意到,如果满足大多数条件,许多图像将可见,并且将超出其父布局的范围

以下说明了我的意图:

RecyclerView中的每个图像的工作代码都很简单,例如:

if (iJobType == 1) {
imageView1.setVisibility(View.VISIBLE)
} else {
imageView1.setVisibility(View.GONE)
}    

if (iJobType == 2) {
imageView2.setVisibility(View.VISIBLE)
} else {
imageView2.setVisibility(View.GONE)
}
但是,我不确定在满足3个条件后如何仅显示3个图像。假设给定的iJobType是1,2,3,4,5,6;这意味着6个图像将显示基于这样的条件,但现在我只需要3个图像显示


我希望它足够清楚,请随意在下面留下评论,以便更好地理解这一点。干杯

在这种情况下,我要做的是:

首先,我将在适配器类中使用的对象类中创建一个getter setter boolean isConditionmeet

e、 g.列表在适配器类中用作:

 private ArrayList<MyObject> list;

现在,每当条件满足以显示项时,我将为该项设置setconditionMeet(true),而为其他项设置conditionMeet为false。最后更新适配器以获得UI中的更改。

在这种情况下,我要做的是:

首先,我将在适配器类中使用的对象类中创建一个getter setter boolean isConditionmeet

e、 g.列表在适配器类中用作:

 private ArrayList<MyObject> list;

现在,每当条件满足以显示项时,我将为该项设置setconditionMeet(true),而为其他项设置conditionMeet为false。最后更新适配器以获得UI中的更改。

您需要检查图像宽度和屏幕宽度。喜欢在每次设置.setVisibility(Visible)时,增加occupiedSpace变量并检查total available。差不多that@Farhan这真的很有道理!谢谢你的建议!也许可见性不是最好的选择。您应该尝试根据可用空间增加getItemCount()。因此,适配器仅在有空格时调用bindViewHolder(VH holder,int position)即使有3个以上的条件,您是否只想显示3个图像??如果是,那么其他的图像呢?你也要显示吗?你需要检查你的图像宽度和屏幕宽度。喜欢在每次设置.setVisibility(Visible)时,增加occupiedSpace变量并检查total available。差不多that@Farhan这真的很有道理!谢谢你的建议!也许可见性不是最好的选择。您应该尝试根据可用空间增加getItemCount()。因此,适配器仅在有空格时调用bindViewHolder(VH holder,int position)即使有3个以上的条件,您是否只想显示3个图像??如果是,那么其他的图片呢,你也要展示吗??