gpt4 book ai didi

android - 由 glide 加载的图像出现然后迅速消失

转载 作者:行者123 更新时间:2023-11-29 01:05:37 24 4
gpt4 key购买 nike

我正在编写一个应用程序,该应用程序拍摄照片然后在将照片保存到内存后执行 fragment 事务以替换原始 fragment (显示手机当前图片的纹理 View 和回收器 View )应该显示最近捕获的图像以及两个 editText。 fragment 事务提交,新图像立即显示,此时 editTexts 未呈现在屏幕上。然后图像消失,两个 editText 被渲染。我记录了两个 fragment 中的文件名,以查看文件名从一个 fragment 传输到下一个 fragment ,根据我在 logcat 中看到的信息已传输。我还在 logcat 中查找了与 glide api 有关的错误消息。我没有看到任何与图像或滑行有关的内容。用于进行 fragment 交易和在新 fragment 中加载图像的代码如下所示。

显示图片的代码

 @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
filePath = getArguments().getString("filepath");
Log.i("file name 2", filePath);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.dialog_new_image_post_submit, container, false);
imageSubmission = root.findViewById(R.id.imagePost);
tagline = root.findViewById(R.id.image_tagline);
genre = root.findViewById(R.id.genre);
if (!getArguments().getString("filepath").equals(null)) {
Glide.with(this)
.load(new File(filePath))
.into(imageSubmission);
Log.i("file name 3", filePath);
Toast.makeText(getActivity(), filePath, Toast.LENGTH_SHORT).show();
}
return root;
}

fragment 间传递文件名的代码

public void continueToSubmit(String filename){
Bundle bundle = new Bundle();
bundle.putString("filepath", filename);
Log.i("file name 1", filename);
NewImageSubmission nis = new NewImageSubmission();
nis.setArguments(bundle);
getParentFragment().getChildFragmentManager()
.beginTransaction().replace(R.id.dialog_frame_layout, nis)
.commit();
}

该应用程序已经具有读取和写入文件的权限。我不确定为什么我的形象不持久。我还应该注意,当 ImageView 上的垂直约束设置为包装图像显示的内容(相对于固定或匹配约束)时,最初用于定义布局的 xml 有一个约束布局作为父 View 组,但是图像覆盖其正下方的 editText,否则图像不显示。理论上, ImageView 的底部和 editText 的顶部之间应该有 8dp 的差异。我最终将约束布局切换为垂直线性布局,希望这样可以解决问题,但事实并非如此。

一个更新

我意识到瞬间出现的捕获图像与 fragment 交易无关。拍摄照片时,纹理 View 似乎显示了一个简短的快照,而 recyclerview 消失了。当我注释掉 fragment 事务时,recyclerview 会暂时消失,然后重新出现并显示新图片。纹理 View 返回显示预览。那么,当已经确定文件路径已从一个 fragment 传输到下一个 fragment 时,为什么图像不显示在下一个 fragment 上?会不会和文件有关?

一个更新

if 语句显示日志语句如果文件不存在则不显示日志语句。向 glide 对象添加请求监听器并创建失败日志语句在控制台中没有显示任何内容。

最佳答案

为了让图像显示在 imageview 中并且不让 imageview 遮挡其正下方的编辑文本,我必须根据 dp 设置高度/宽度(而不是使用 match_parent 或 wrap_contents),而 View 是约束布局的 child 。将 View 作为垂直线性布局的子项,其中高度设置为 0dp,权重设置为 1,而两个编辑文本的高度设置为 wrap_contents 对我来说不起作用。

关于android - 由 glide 加载的图像出现然后迅速消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460518/

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