【问题标题】:How to fix black screen when starting a new fragment启动新片段时如何修复黑屏
【发布时间】:2017-11-04 14:03:14
【问题描述】:

启动片段时出现短时间黑屏。我将对片段进行条形码扫描。

如果我只是打开一个空白屏幕,我看不到黑屏。我想我要打开的问题是片段加载时间长。

我该如何解决这个问题

我的代码

getFragmentManager().beginTransaction()
                .replace(R.id.container,newFragment2())
                .commit();


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.dlazaro66.qrcodereaderview.QRCodeReaderView
        android:id="@+id/qrdecoderview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        />

</LinearLayout>

【问题讨论】:

  • 你设置了 Fragment 的布局吗?如果是,请在此处发布代码。那么只有有人可以提供帮助。
  • 你的代码在哪里?没有代码,没有帮助
  • 对不起。我添加了代码

标签: android android-layout android-fragments android-activity


【解决方案1】:

尝试在 onCreate() 或 PostCreate() 之后以编程方式加载 QRCodeReaderView 怎么样?或者,您可以在片段完全加载后尝试异步执行此操作。

【讨论】:

  • 我试过了。但又出现了短暂的黑屏。
  • 其他片段是否也存在问题?
  • 不仅在相机页面上。我想当它迟到时页面会出现
【解决方案2】:

如果 QRCodeReaderView 或任何其他视图延迟片段初始化,您可以尝试使用ViewStubs.

来自 Android 文档,

ViewStub 是一个不可见的、大小为零的 View,可用于延迟 在运行时膨胀布局资源。当 ViewStub 可见时, 或者当调用 inflate() 时,布局资源被膨胀。这 ViewStub 然后用膨胀的 View 替换其父级中的自身或 意见。因此,ViewStub 存在于视图层次结构中,直到 调用 setVisibility(int) 或 inflate()。添加了膨胀的视图 使用 ViewStub 的布局参数到 ViewStub 的父级

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多