滑动不加载真实图像并停留占位符

Tar*_*ury 46 android android-glide

我有一个来自服务器行代码的非常基本的加载映像:

Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).into(view);

出于某种原因,我总是坚持使用显示的占位符而不是真实的图像!

我已经确保传递了一个有效且有效的URL.并且,如果我在没有占位符的情况下使用相同的代码,它可以正常工作

Glide.with(view.getContext()).load(url).into(view);

有什么想法吗?

Abb*_*ine 87

尝试添加.dontAnimate() 它也是由TransitionDrawable引起的,看起来好像滚动之后没有动画因为它被缓存了.正确的代码是

Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).dontAnimate().into(view);
Run Code Online (Sandbox Code Playgroud)

我希望对你有所帮助

  • 出于某种奇怪的原因,这解决了这个问题.没有动画,过渡很难看. (3认同)

Ivo*_*nov 39

检查您是否在清单中添加了Internet权限:

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

如果没有Internet连接,Glide不会触发异常.

  • F***.经过3年的Android应用程序,这件事仍然让我失去了工作时间,伙计. (9认同)
  • 确实 !这解决了我的麻烦.我认为当开发者犯这样的错误时,如果glide引发异常会更有用. (3认同)

小智 10

在清单中的应用程序标记中添加 android:usesCleartextTraffic="true" 并检查同一清单文件中是否提及互联网权限:-


kod*_*ory 5

添加以下权限以访问资源端点/url

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

如果您的目标端点/url 只有http,请在您的manifest.xml 中添加以下代码。从 Android 9(API 级别 28)开始,默认情况下禁用明文支持。

android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)

因此,如果您从未加密的 HTTP API 获取资源,请不要忘记添加

res/xml/network_security_config.xml
Run Code Online (Sandbox Code Playgroud)

所以代码会像这样

网络安全配置.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">urweb.id</domain>
        <domain includeSubdomains="true">localhost</domain>
        ...
        <domain includeSubdomains="true">111.222.333.444</domain>
    </domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
    
        <activity>
        ...
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)