【发布时间】:2012-05-19 19:07:02
【问题描述】:
我正在尝试将线性布局嵌入到另一个线性布局中。我有一个地图视图。如果我在 mapview 之后放置嵌入布局,则它不起作用。如果我把它放在它之前呢?为什么以及我应该怎么做?
下面给出的两个文件:第一个失败。第二个有效吗?不过我想要第一个。
<!--two files.
The first file does not work. The Check Boxes in an embeded linear layout is below the mapview. It only shows map view.
The second file works. The Check Boxes in an embeded linear layout is ABOVE the mapview.-->
<!-- FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE FILE ONE-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#A971E5" >
<com.google.android.maps.MapView
android:id="@+id/mapWhenImClose"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0MbR34udiEJdnkplC1F7rK4ZxbSFzdRagCruFDA"/>
<!-- had this line but it said depreciated
android:enabled="true" -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/chkShowStreetView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strShowStreetView" />
<CheckBox
android:id="@+id/chkShowSatelliteView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strShowSatelliteView" />
</LinearLayout>
</LinearLayout>
<!--File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two File Two-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#A971E5" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/chkShowStreetView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strShowStreetView" />
<CheckBox
android:id="@+id/chkShowSatelliteView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strShowSatelliteView" />
</LinearLayout>
<com.google.android.maps.MapView
android:id="@+id/mapWhenImClose"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0MbR34udiEJdnkplC1F7rK4ZxbSFzdRagCruFDA"/>
<!-- had this line but it said depreciated
android:enabled="true" -->
</LinearLayout>
【问题讨论】:
-
从逻辑上讲,
MapView似乎占据了整个屏幕,因为您有android:layout_height="fill_parent",它迫使LinearLayout离开屏幕底部。如果将其高度设置为wrap_content会发生什么?或者将MapView放在它自己的LinearLayout中,将其高度设置为0dp,对于包含CheckBoxes的LinearLayout设置相同的高度。然后在每个上设置android:layout_weight来分配屏幕的比例。 -
很抱歉刚刚注意到这一点……我也不太喜欢这种方法……我现在的主要目标是学习更多,而不仅仅是把东西拿出来。
标签: android xml android-layout android-linearlayout