我想在谷歌地图下面添加两个对齐的按钮。我尝试添加下面的按钮,但它没有显示,每当我尝试更改地图的大小时,界面会因不同的设备而异。我该怎么做?请帮忙。以下是我的代码,没有按钮代码 -
activity_maps.xml -
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/etSearch"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="search"
android:id="@+id/btnSearch"
android:layout_gravity="end"
style="?android:attr/buttonStyleSmall"
android:onClick="onSearch" />
</LinearLayout>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map"
tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
答案 0 :(得分:2)
如果我猜对了,你的问题是地图片段下面的任何按钮(在主LinearLayout
内)都不可见。这可以通过将地图片段的layout_height
设置为0dp
并为layout_weight
1
设置来解决。地图片段上方和下方的UI元素应将layout_height
设置为wrap_content
,就像您所做的那样。
这个想法是其他UI元素仅使用他们需要的屏幕高度量,然后地图片段将使用所有剩余空间。类似的方法通常可用于所有类型的布局,其中一些元素具有固定的高度/宽度,一个元素应该缩放到最佳高度/宽度。
作为XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/etSearch"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="search"
android:id="@+id/btnSearch"
android:layout_gravity="end"
style="?android:attr/buttonStyleSmall"
android:onClick="onSearch" />
</LinearLayout>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/map"
tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" />
<!--The Buttons below the map fragment-->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button2" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
您可以通过为地图片段和包含editText和按钮的线性布局指定layout_weight
属性来实现。
例如:
<LinearLayout
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content">
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/etSearch"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="search"
android:id="@+id/btnSearch"
android:layout_gravity="end"
style="?android:attr/buttonStyleSmall"
android:onClick="onSearch" />
</LinearLayout>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map"
android:layout_weight="1"
tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" />
这将为地图片段和线性布局平均分割空间,但可以随意尝试不同的数字来实现您想要的效果