按钮没有显示出来

时间:2018-03-24 18:19:20

标签: android button android-linearlayout android-framelayout

我在activity_maps.xml中有这段代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical">

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></fragment>

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="492dp">

    <Button
        android:id="@+id/btnRestaurant"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Restaurants"
        android:visibility="visible" />

    <Button
        android:id="@+id/btnHospital"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Hospitals"
        android:visibility="visible" />

    <Button
        android:id="@+id/btnSchool"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Schools"
        android:visibility="visible" />
</FrameLayout>

我面临的问题是每当我打开应用程序时,它都不显示任何按钮,只显示地图和当前位置。请帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

您的地图片段高度为“match_parent”,这就是为什么它会占用您布局上的所有屏幕。将其保存为wrap_content并使用相对布局确保按钮出现在屏幕底部。地图片段中的“alignParentTop”可确保地图位于屏幕顶部, layout_above 可确保您的地图无法占据所有屏幕,“alignParentBottom按钮布局中的“确保按钮位于底部。尽量不要为布局指定任何静态高度。它会妨碍你的应用程序的响应能力。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="vertical">

    <fragment
        android:layout_alignParentTop="true"
        android:id="@+id/map"
        android:layout_above="@+id/layout_buttons"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_contant"></fragment>

    <FrameLayout
        android:id="@+id/layout_buttons"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/btnRestaurant"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nearby Restaurants"
            android:visibility="visible" />

        <Button
            android:id="@+id/btnHospital"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nearby Hospitals"
            android:visibility="visible" />

        <Button
            android:id="@+id/btnSchool"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nearby Schools"
            android:visibility="visible" />
    </FrameLayout>

    </RelativeLayout>

答案 1 :(得分:0)

请将片段放在framelayout

中 像这样:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></fragment>

<LinearLayout
 android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btnRestaurant"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Restaurants"
        android:visibility="visible" />

    <Button
        android:id="@+id/btnHospital"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Hospitals"
        android:visibility="visible" />

    <Button
        android:id="@+id/btnSchool"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nearby Schools"
        android:visibility="visible"/>
  </LinearLayout>
</FrameLayout>

希望这会对你有所帮助,谢谢:)