0

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>
4

3 に答える 3

0

私はいつも別のファイルに別々のタブビューを持っていました。

MainLayout.xml-タブホストとフレームレイアウトが含まれています。

Tab1.xml-タブ1のレイアウトが含まれています

Tab2.xml-タブ2のレイアウトが含まれています

メインアクティビティのタブ選択機能で、選択されたタブを確認し、そのxmlファイルをMainLaout.xmlのフレームレイアウトに配置します。詳細については、Androidタブのサンプルプロジェクトを確認してください。

于 2012-09-21T05:52:22.983 に答える
0

このコードは画面にタブを表示していますか?

于 2012-09-21T04:42:24.517 に答える
0

最後に解決策を追跡しました。私のアクティビティのコードでは、元の質問のレイアウト コードで MapView ビュー、id 'mapview' を使用して MapView タブにデータを入力していました。MapView ビュー、id 'mainlayout' を含む RelativeLayout を使用してタブを設定すると、タブが正しく機能するようになりました。ネットで見つけた例に基づいて元のコードを書きましたが、私のように装飾しようとするまでは問題なく動作します。

于 2012-09-25T01:34:58.050 に答える