使用多个DecorativeBarcodeViews时,视图保持黑色

时间:2018-02-22 10:22:39

标签: android android-fragments android-camera qr-code zxing

我正在尝试在多个标签中使用QR码阅读器。在使用Google Vision API出现问题后,我尝试切换到zxing。首先,我尝试使用库zxing-android-embedded

我尝试了他们的标签样本,其中包含条形码阅读器和摄像头视图。如果我用额外的条形码阅读器替换摄像机视图,则第一个标签中的视图将保持黑色。

black cameraview

我在ScissorTest s1 = new ScissorTest(0, 0, 64, 64); draw.rect(); ScissorTest s2 = new ScissorTest(32, 32, 48, 48); draw.smallRect(); s2.destroy(); // Here you can draw something in bounds of s1 s1.destroy(); 中的ScanFragments中使用了两个SectionsPagerAdapter

TabbedScanning.java

切换标签或更改屏幕方向后,一切正常,但在第一个标签保持黑色之前。

working cameraview

我还在日志文件中发现以下错误,我不知道如何解决这个问题。

@Override
public android.support.v4.app.Fragment getItem(int position) {
    if(position == 0) {
        return ScanFragment.newInstance();
    } else {
        return ScanFragment.newInstance();
    }
}

我能做些什么,视图不会保持黑色并显示工作的视角?

1 个答案:

答案 0 :(得分:0)

我想我找到了解决这个问题的方法:

在setUserVisibleHint中,您必须为当前字段分配片段的当前可见性。

private boolean isVisibleToUser = false;

public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    this.isVisibleToUser = isVisibleToUser;
    ...

并在onResume

中检查此值
@Override
public void onResume() {
    super.onResume();
    if (isVisibleToUser)
        barcodeView.resume();
}

我现在已经在2个不同的设备上对此进行了测试,并且在更改屏幕方向或最小化应用后没有遇到任何其他问题。