如何在启动新片段时修复黑屏

时间:2017-11-04 14:03:14

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

启动片段时黑屏显示时间短。我会对片段进行条形码扫描。

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

我该如何解决这个问题

我的代码

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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

来自Android文档,

  

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

到ViewStub的父级