你的想法是编写一个活动,将谷歌地图api v2显示为一个片段,并在两个按钮上显示处理服务并在地图上生成标记。
现在的问题是,是否可以将地图片段放入定义和处理按钮的普通布局中,还是必须将按钮放在另一个片段中?
当地图覆盖整个屏幕时,即使我通过android:height
限制大小<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/DarkGrey">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="410dp"
class="com.google.android.gms.maps.SupportMapFragment" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom">
<Button
android:id="@+id/buttonStopTracking"
android:text="@string/btn_stop_tracking"
android:layout_width="160dp"
android:layout_height="60dp"
android:textSize="20sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/buttonCreatePoI"
android:text="@string/btn_create_PoI"
android:layout_width="160dp"
android:layout_height="60dp"
android:textSize="20sp"
android:textStyle="bold"
/>
</LinearLayout>
答案 0 :(得分:5)
我希望我的布局xml对你有所帮助。
就我而言,所有按钮和TextView都位于 Google地图上。 我使用的是新的Google Maps API v2,我的MainActivity扩展了“android.support.v4.app.FragmentActivity”。
这是我的完整xml;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="40sp"
android:layout_alignParentTop="true" >
<Button
android:id="@+id/provider_fine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_inactive"
android:minWidth="160sp"
android:onClick="useFineProvider"
android:text="@string/use_fine_provider" />
<Button
android:id="@+id/provider_both"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_inactive"
android:minWidth="160sp"
android:onClick="useCoarseFineProviders"
android:text="@string/use_both_providers" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout3"
android:layout_width="match_parent"
android:layout_height="40sp"
android:layout_below="@+id/LinearLayout1" >
<Button
android:id="@+id/reset_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_inactive"
android:minWidth="160sp"
android:onClick="resetButton"
android:text="@string/reset_button" />
<Button
android:id="@+id/calc_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_inactive"
android:minWidth="160sp"
android:onClick="calcButton"
android:text="@string/calc_button" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout2"
android:layout_width="match_parent"
android:layout_height="95sp"
android:orientation="vertical"
android:layout_alignParentBottom="true" >
<TextView
android:id="@+id/label_latlng"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/latlng"
android:textSize="10sp" />
<TextView
android:id="@+id/latlng"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp" />
<TextView
android:id="@+id/label_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/address"
android:textSize="10sp" />
<TextView
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp" />
<TextView
android:id="@+id/secondText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp" />
<TextView
android:id="@+id/distanceText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp" />
</LinearLayout>
</RelativeLayout>
结果屏幕如下; 由于我的隐私,我删除了图片上的一些文字。
答案 1 :(得分:1)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/DarkGrey">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<fragment
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom">
<Button
android:id="@+id/buttonStopTracking"
android:text="@string/btn_stop_tracking"
android:layout_width="160dp"
android:layout_height="60dp"
android:textSize="20sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/buttonCreatePoI"
android:text="@string/btn_create_PoI"
android:layout_width="160dp"
android:layout_height="60dp"
android:textSize="20sp"
android:textStyle="bold"
/>
</LinearLayout>
</LinearLayout>
我猜应该做的伎俩。
使用layout_weight是一个技巧。
第一个布局上的垂直方向也是如此。