我正在使用 bottomsheetlayout 弹出窗口进行社交媒体共享。现在的问题是,它不止一次开放。请帮我解决这个问题。
在我的按钮上单击我调用 asynctask 以下载图像。
@Ghi đè
protected void onPostExecute(Void res) {
super.onPostExecute(res);
//prodImageUri1.addAll(prodImageUri);
if(single_rdb.isChecked())
{
createImageBitmap();
}
else if(allimg_rdb.isChecked())
{
temps=new ArrayList<>();
for(int i=0;i<>
{
if(i==8)
{
phá vỡ;
}
temps.add(prodImageUri.get(i));
// System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
createImageBitmap();
}
}
}
这里我调用了createImageBitmap方法。现在在这个方法中我有 bottomsheet.show
public void createImageBitmap(){
...................
...................
if(single_rdb.isChecked())
{
header_image.setImageURI(prodImageUri.get(0));
imageview1.setVisibility(View.GONE);
imageview2.setVisibility(View.GONE);
imageview3.setVisibility(View.GONE);
horizontal_image_layout.setVisibility(View.GONE);
}
else if(allimg_rdb.isChecked())
{
arrayListClone = (ArrayList) temps.clone();
for(int i=0;i<>
{
//System.out.println("FAFA"+arrayListClone);
header_image.setImageURI(arrayListClone.get(i));
// System.out.println("SIZE "+temps.size()+"TEST "+temps.get(i));
}
imageview1.setVisibility(View.GONE);
imageview2.setVisibility(View.GONE);
imageview3.setVisibility(View.GONE);
horizontal_image_layout.setVisibility(View.GONE);
}
for(int i=0;i<>
{
if(i==1)
{
phá vỡ;
}
System.out.println("This is check");
addPhotoBottomDialogFragment = new BottomSheetSharingFragment1();
addPhotoBottomDialogFragment.show(((FragmentActivity)context).getSupportFragmentManager(),
"add_photo_dialog_fragment");
}
我想要实现的是,bottomDailog 应该只打开一次,现在它是根据图像数组列表的大小打开的。例如,如果 arraylist 将有 3 个图像,它会显示 dailog 三次并相互放置。
好吧,从你的 for 循环中删除底部工作表对话框调用,并将它放在 for 循环之外,因为 for 循环会执行多次,直到 for 循环到达你的数组列表的末尾,它将继续执行。因此,只需移除底板并将其放在 for 循环之外由于这段代码,您遇到了问题:
for(int i=0;i<>
{
if(i==8)
{
phá vỡ;
}
temps.add(prodImageUri.get(i));
// System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
createImageBitmap();
}
所以只需从您的 createImageBitmap() 中删除底部工作表对话框;方法并将其放在方法之外。
Tôi là một lập trình viên xuất sắc, rất giỏi!