首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像未被幻灯片下载到片段中

图像未被幻灯片下载到片段中
EN

Stack Overflow用户
提问于 2021-01-05 17:36:25
回答 1查看 196关注 0票数 0

我正在尝试将图像下载到片段内的ImageView中,但似乎网络请求甚至都没有由幻灯片发出。(我使用Proxyman从我的物理Android设备上监视网络流量)。我不知道还能尝试什么。

以下是片段代码:

代码语言:javascript
复制
class ExampleFragment : Fragment(R.layout.fragment_example) {
    @Inject
    lateinit var viewModelFactory: ViewModelProvider.Factory
    lateinit var viewModel: ExampleViewModel
    private lateinit var binding: FragmentExampleBinding

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        binding = FragmentExampleBinding.inflate(layoutInflater)
        (activity as ExampleActivity).appComponent.inject(this)
        viewModel = ViewModelProviders.of(this, viewModelFactory)
                .get(ExampleViewModel::class.java)

       // I have also tried `activity as FragmentActivity` instead of this
        Glide.with(this).load("https://www.popwebdesign.net/popart_blog/wp-content/uploads/2018/01/tiny-png-panda.jpg")
                .override(200)
                .into(binding.imageViewFaceTaggingStart)
    }
}

额外细节:

  • ,我读过http://bumptech.github.io/glide/doc/debugging.html#missing-images-and-local-logs,其中提到了一些我可以尝试的东西。我可以确认我调用了into(),不使用自定义目标,并且显式地设置了图像视图的大小和背景颜色,以确保它不是“零宽度”。
  • ,我在活动中使用FragmentContainerView
  • 这里是一个简化的XML文件:

代码语言:javascript
复制
<androidx.constraintlayout.widget.ConstraintLayout ... >
    <androidx.appcompat.widget.Toolbar ...></androidx.appcompat.widget.Toolbar>
    <ScrollView ...>
    <LinearLayout ...>
         <ImageView
                android:id="@+id/image_view_face_tagging_start"
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:visibility="visible"
                android:background="@android:color/black"
                android:scaleType="centerCrop"/>
         ....more views (TextView, Space, Checkbox)
        </LinearLayout>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-05 18:07:11

正在膨胀的视图与您使用的视图引用(即binding )不相同,

代码语言:javascript
复制
class ExampleFragment : Fragment() {
    @Inject
    lateinit var viewModelFactory: ViewModelProvider.Factory
    lateinit var viewModel: ExampleViewModel
    private lateinit var binding: FragmentExampleBinding


override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        binding = FragmentExampleBinding.inflate(layoutInflater)
        return this.binding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        (activity as ExampleActivity).appComponent.inject(this)
        viewModel = ViewModelProviders.of(this, viewModelFactory)
                .get(ExampleViewModel::class.java)

       // I have also tried `activity as FragmentActivity` instead of this
        Glide.with(this).load("https://www.popwebdesign.net/popart_blog/wp-content/uploads/2018/01/tiny-png-panda.jpg")
                .override(200)
                .into(binding.imageViewFaceTaggingStart)
    }
}

现在,片段的视图是binding,尝试使用以下内容。

在这里发行class ExampleFragment : Fragment(R.layout.fragment_example)

现在片段将膨胀这个R.layout.fragment_example而不是绑定,所以binding引用另一个视图,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65583813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档