gpt4 book ai didi

android - 在应用程序的 2 个 fragment 中使用 Scandit BarcodeScanner

转载 作者:行者123 更新时间:2023-11-30 01:54:07 24 4
gpt4 key购买 nike

我开发了一个扫描条形码的应用程序。我的应用程序是一个带有 2 个选项卡的 Android TabView 应用程序。我想在它们中添加条形码扫描仪。

我的代码如下:

fragment 1:

public class WebServiceFragment extends Fragment {

RelativeLayout scanServiceView;
ScanditSDKAutoAdjustingBarcodePicker barcodePicker;



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(container == null) {
return null;
}

View v = inflater.inflate(R.layout.webservice_layout, container, false);

scanServiceView = (RelativeLayout)v.findViewById(R.id.scanserviceview);
barcodePicker = new ScanditSDKAutoAdjustingBarcodePicker(getActivity(), "<My Scandit SDK Key 1>", ScanditSDKAutoAdjustingBarcodePicker.CAMERA_FACING_BACK);
barcodePicker.startScanning();

scanServiceView.addView(barcodePicker);

return v;
}
}

fragment 2:

public class CMCSMOFragment extends Fragment {

RelativeLayout scanSMOView;
ScanditSDKAutoAdjustingBarcodePicker barcodePicker;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(container == null) {
return null;
}
View v = inflater.inflate(R.layout.cmcsmo_layout, container, false);

scanSMOView = (RelativeLayout)v.findViewById(R.id.scansmoview);
barcodePicker = new ScanditSDKAutoAdjustingBarcodePicker(getActivity(), "<My Scandit SDK Key 2>", ScanditSDKAutoAdjustingBarcodePicker.CAMERA_FACING_BACK);
barcodePicker.startScanning();

scanSMOView.addView(barcodePicker);

return v;
}
}

但是当我构建时,只有 Fragment2 显示用于扫描的相机 View 。 Fragment1 显示黑屏。如果我删除调用 Scandit SDKFragment2 代码,Fragment1 将正常工作。这种情况我该怎么办?下图是问题屏幕:

  1. fragment 1:

enter image description here

  1. fragment 2:

enter image description here

最佳答案

正如评论中所指出的,您需要在离开 Fragment 时停止扫描。

这是因为 Fragment 在离开时并没有破坏它的 View 。因此,只要您保留该引用,就不会收集您对 barcodePicker 的引用。

相机不允许连接多个信号源,因此您必须先断开与它的连接,然后才能尝试在其他地方使用它。

关于android - 在应用程序的 2 个 fragment 中使用 Scandit BarcodeScanner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com