我在一个名为include_toolbar.xml
的单独文件中有一个自定义工具栏。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/include_toolbar"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
在活动的布局中,我想在顶部显示此工具栏,相机预览视图和顶部的图像按钮。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/include_toolbar" />
<com.journeyapps.barcodescanner.CompoundBarcodeView
app:zxing_result_view="@color/zxing_custom_result_view"
android:id="@+id/activity_scan_barcodeView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.journeyapps.barcodescanner.CompoundBarcodeView>
<ImageButton
android:id="@+id/activity_scan_flashlight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@id/activity_scan_barcodeView"
android:src="@drawable/btn_flashOn"/>
</LinearLayout>
CompoundBarcodeView
是this库中的一个组件。
LinearLayout
的问题是不显示图像按钮。
如果我将其更改为RelativeLayout
,则会显示图像按钮,但现在工具栏已消失。
我如何才能显示它们?
答案 0 :(得分:3)
将父级布局设为LinearLayout
,然后制作两个子组件,一个是工具栏,第二个是RelativeLayout
,并且RelativeLayout
内置CompoundBarcodeView
和ImageButton
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/include_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:orientation="vertical"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.journeyapps.barcodescanner.CompoundBarcodeView
android:id="@+id/activity_scan_barcodeView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:zxing_result_view="@color/zxing_custom_result_view"/>
<ImageButton
android:id="@+id/activity_scan_flashlight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/activity_scan_barcodeView"
android:layout_alignParentBottom="true"
android:src="@drawable/btn_flashOn" />
</RelativeLayout>
</LinearLayout>
您可能需要根据您的设计调整按钮在RelativeLayout
中的位置。
答案 1 :(得分:1)
<com.journeyapps.barcodescanner.CompoundBarcodeView
app:zxing_result_view="@color/zxing_custom_result_view"
android:id="@+id/activity_scan_barcodeView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.journeyapps.barcodescanner.CompoundBarcodeView>
android:layout_height="match_parent" -> android:layout_height="wrap_content"