2015-03-25 102 views
3

我正在使用journeyapps进行条形码扫描。Android zxing journeyapps条形码扫描器内部片段

我的想法是有一个活动,使包含标题的布局膨胀,并在该标题的下方显示一个片段。在那个片段里面,我会在那里吃条形码扫描器,所以扫描器理想情况下会扫描片段内部,并且头部总是可见的。

在我的活动我有这样的:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_with_header_and_fragment_placeholder); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    Fragment fragment = new Fragment(); 

    FragmentManager fm = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
    fragmentTransaction.add(R.id.fragment, fragment); 
    fragmentTransaction.commit(); 
} 

而在我的片段我有这样的:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.dummy_view_with_blank_content, container, false); 

    return rootView; 
} 


@Override 
public void onResume() { 
    super.onResume(); 
    IntentIntegrator.forFragment(this).setPrompt("Some prompt").initiateScan(); 
} 

问题是当条码扫描器共进午餐,它需要所有可用的屏幕。它不会在我的活动布局R.layout.activity_with_header_and_fragment_placeholder中加载,以便我的标题可见。

有人知道我该如何解决这个问题吗?

+2

这是不可能的。它始终启动新的活动:[IntentIntegrator.java#L341](https://github.com/journeyapps/zxing-android-embedded/blob/master/integration/src/main/java/com/google/zxing/integration/安卓/ IntentIntegrator.java#L341)。您需要创建自己的实现,类似于:[CaptureActivity](https://github.com/journeyapps/zxing-android-embedded/blob/master/zxing-android-legacy/src/com/google/zxing/client /androidlegacy/CaptureActivity.java) – Ziem 2015-03-25 10:42:58

回答

0

从项目页面读取,您可以提供一个custom layout来修改加载应用程序本身的活动/片段的外观。尝试使用

+0

谢谢。我已经尝试过,但问题是我的标题中有一个按钮,并且无法将侦听程序从我的活动(午餐扫描程序)附加到该按钮上 – Favolas 2015-03-25 10:56:24

+1

您可以访问库的源代码..只需找到显示扫描仪活动/片段的类,使用按钮或菜单选项修改它,并将侦听器放在那里,应该足以实现您的目标 – stiga 2015-03-25 13:53:53