2015-03-25 105 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