gpt4 book ai didi

android - BottomSheet 对话框打开不止一次

转载 作者:行者123 更新时间:2023-11-29 23:18:24 27 4
gpt4 key购买 nike

我正在使用 bottomsheetlayout 弹出窗口进行社交媒体共享。现在的问题是,它不止一次开放。请帮我解决这个问题。

在我的按钮上单击我调用 asynctask 以下载图像。

@Override
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<prodImageUri.size();i++)
{
if(i==8)
{
break;
}
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<Uri>) temps.clone();
for(int i=0;i<arrayListClone.size();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<arrayListClone.size();i++)
{
if(i==1)
{
break;
}
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<prodImageUri.size();i++)
{
if(i==8)
{
break;
}
temps.add(prodImageUri.get(i));
// System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
createImageBitmap();

}

所以只需从您的 createImageBitmap() 中删除底部工作表对话框;方法并将其放在方法之外。

关于android - BottomSheet 对话框打开不止一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54863869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com