抽屉布局的高度不起作用

时间:2018-08-12 14:02:51

标签: android android-layout android-relativelayout arcgis-runtime

我想制作一个地图APP,我使用了Drawerlayout,我的主要布局是Relativelayout,左抽屉是Linerlayout,我的布局像下面这样。

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/fragment_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">



    <com.esri.arcgisruntime.mapping.view.MapView
        android:id="@+id/main_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"></com.esri.arcgisruntime.mapping.view.MapView>
    <!--SearchBar部分-->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:layout_width="500dp"
        android:layout_height="50dp"
        android:layout_marginTop="20dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_marginLeft="20dp">

        <ImageButton
            android:id="@+id/searchbar_more_button"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:src="@drawable/main_searchbar_more"
            android:background="@color/mainColor"
            android:scaleType="centerInside"/>

        <EditText
            android:id="@+id/searchbar_searchtext_textview"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@color/whiteColor"
            android:gravity="center"
            android:hint="请输入要查询的信息"
            android:textAlignment="viewStart"
            android:textSize="20dp" />
        <ImageButton
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:id="@+id/searchbar_search_button"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:background="@color/mainColor"
            android:src="@drawable/main_searchbar_search"
            android:scaleType="centerInside"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="70dp"
        android:layout_marginRight="20dp">

        <ImageButton
            android:id="@+id/main_global_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:scaleType="centerInside"
            android:background="@color/mainColor"
            android:src="@drawable/main_global_button" />

        <ImageButton
            android:id="@+id/main_layerswitch_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:scaleType="centerInside"
            android:background="@color/mainColor"
            android:src="@drawable/main_layerswitch_button" />

        <ImageButton
            android:id="@+id/main_electricity_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:scaleType="centerInside"
            android:background="@color/mainColor"
            android:src="@drawable/main_electricity_button" />

        <ImageButton
            android:id="@+id/main_measure_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:background="@color/mainColor"
            android:scaleType="centerInside"
            android:src="@drawable/main_measure_button" />

        <ImageButton
            android:id="@+id/main_location_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:background="@color/mainColor"
            android:scaleType="centerInside"
            android:src="@drawable/main_location_button" />
    </LinearLayout>


</RelativeLayout>
<!--左边抽屉菜单-->
<LinearLayout
    android:id="@+id/menu_layout_left"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    android:orientation="vertical">
    <include layout="@layout/left_drawer"></include>
</LinearLayout>

但是我发现尽管我将抽屉的高度设置为“ match_parent”,但它的高度取决于搜索栏和图像按钮的高度,当我在平板电脑上运行代码时,结果是这样的: wrong height drawer picture 您会看到抽屉的高度不正确。有谁知道原因吗? 非常感谢。

2 个答案:

答案 0 :(得分:0)

对于导航抽屉,您应该这样使用

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">


    <include
        layout="@layout/content_main_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@color/backGroundColor"
        app:menu="@menu/menu_activity_drawer"
        app:itemTextColor="@color/mainFontColor"

        />


</android.support.v4.widget.DrawerLayout>

所以您不应该使用线性布局 在抽屉内放您想要的所有物品,您可以放置​​菜单项目,也可以放置recyclerview

答案 1 :(得分:0)

我找不到这个问题的原因。也许这是ArcGIS Runtime for Android或Android SDK的错误,但我已经想出了解决方案。我使用了DrawerLayout的popupWindow表示。如果有人遇到相同的问题,您可以用这种方法解决。谢谢您的帮助。