1 つのタブには情報画面 (以下のコードの ID は「targetLayout」) が含まれ、いくつかの TextViews と MapView を含むもう 1 つのタブがあります。レイアウトを使用して、MapView タブ画面のみに表示されるボタンを追加しようとしていますが、両方に表示されています。奇妙なことに、ボタンが情報タブだけにあるようにレイアウトを変更すると、それが機能します。私は何かが欠けている必要がありますが、何が明らかではありません。
両方にボタンが表示されるレイアウトは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/targetLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textViewTargetPositionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Target Position"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewTargetPosition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewTargetPositionLabel"
android:layout_centerHorizontal="true"
android:text="Waiting"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewTargetRangeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewTargetPosition"
android:layout_marginTop="10dp"
android:text="Range(M):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetAzimuthLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetRangeLabel"
android:text="Azimuth(Deg):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetElevationLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetAzimuthLabel"
android:text="Elevation(Deg):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetTimeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetElevationLabel"
android:text="Time lased:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewGPSAccuracy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetTimeLabel"
android:text="GPS Accuracy When Lased:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewYourPositionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewGPSAccuracy"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Your Position"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewYourPosition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewYourPositionLabel"
android:layout_centerHorizontal="true"
android:text="Waiting for GPS Fix"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewGPSStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewYourPosition"
android:layout_marginTop="14dp"
android:text="GPS Status: Initializing" />
<TextView
android:id="@+id/textViewGPSInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textViewGPSStatus"
android:layout_alignBottom="@+id/textViewGPSStatus"
android:layout_alignParentRight="true" />
</RelativeLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="<my key is in here>"
android:clickable="true"
android:enabled="true" />
<Button
android:id="@+id/googlemaps_select_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Select" />
</RelativeLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
情報タブだけにボタンを配置するレイアウトは次のとおりです。唯一の違いは、ボタンが情報タブの RelativeLayout にあることです。
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/targetLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textViewTargetPositionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Target Position"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewTargetPosition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewTargetPositionLabel"
android:layout_centerHorizontal="true"
android:text="Waiting"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewTargetRangeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewTargetPosition"
android:layout_marginTop="10dp"
android:text="Range(M):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetAzimuthLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetRangeLabel"
android:text="Azimuth(Deg):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetElevationLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetAzimuthLabel"
android:text="Elevation(Deg):"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewTargetTimeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetElevationLabel"
android:text="Time lased:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewGPSAccuracy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewTargetTimeLabel"
android:text="GPS Accuracy When Lased:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textViewYourPositionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewGPSAccuracy"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Your Position"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewYourPosition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewYourPositionLabel"
android:layout_centerHorizontal="true"
android:text="Waiting for GPS Fix"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textViewGPSStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewYourPosition"
android:layout_marginTop="14dp"
android:text="GPS Status: Initializing" />
<TextView
android:id="@+id/textViewGPSInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textViewGPSStatus"
android:layout_alignBottom="@+id/textViewGPSStatus"
android:layout_alignParentRight="true" />
<Button
android:id="@+id/googlemaps_select_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Select" />
</RelativeLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="my key is in here"
android:clickable="true"
android:enabled="true" />
</RelativeLayout>
</FrameLayout>
</LinearLayout>
</TabHost>