0

私は持っている:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activityLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ColorViewerActivity" >

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        // skip it
    </TabHost>

    <TextView
        android:id="@+id/decDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/tabhost"
        android:layout_centerHorizontal="true"
        android:gravity="center_vertical|center_horizontal"
        android:text="222"
        android:textSize="19sp" />

    <LinearLayout
        android:id="@+id/panelLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_margin="1dip"
        android:orientation="vertical" >

    </LinearLayout>

    <TextView
        android:id="@+id/hexDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/decDescription"
        android:layout_alignRight="@+id/panelLayout"
        android:layout_below="@android:id/tabhost"
        android:text="111"
        android:textSize="14sp" />

</RelativeLayout>

最後TextView (id=hexDescription)をペナルトの前に置くLinearLayout (id=panelLayout)と、例外が発生します。LogCat から:

java.lang.RuntimeException: Unable to start activity ComponentInfo{   com.gmail.leonidandand.colorviewer/com.gmail.leonidandand.colorviewer.ColorViewerActivity}:
java.lang.ClassCastException: android.widget.LinearLayout

何が問題なのですか?

私の英語でごめんなさい。

ありがとう

4

3 に答える 3

1

に対して相対的に配置する必要があることを示しているためですLinearLayout。したがって、配置したい要素の後に宣言する必要があります。宣言しない場合

android:layout_alignRight="@+id/panelLayout"

あなたのヘクスTextViewでは、それは問題ではありません。これは、描画時にそのプロパティが表示され、まだ描画されていないため、相対的に配置するlayoutプロパティを見つけることができないためです。idview

于 2013-04-30T19:14:54.187 に答える
1

以下のものを再配置してみてください

android:layout_alignBottom="@+id/decDescription"
android:layout_alignRight="@+id/panelLayout"
android:layout_below="@android:id/tabhost"

decDescription の下部とタブホストの下に配置しているため、エラーが発生する可能性があります

于 2013-04-30T19:23:10.053 に答える
1

Tabhost には、ID を持つ TabWidget が必要です。これは、xml レイアウトを使用したときに lint が警告したものです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ColorViewerActivity" >
<TabHost 
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <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="wrap_content"/>
</LinearLayout>
</TabHost>

<TextView
    android:id="@+id/decDescription"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@android:id/tabhost"
    android:layout_centerHorizontal="true"
    android:gravity="center_vertical|center_horizontal"
    android:text="222"
    android:textSize="19sp" />

<LinearLayout
    android:id="@+id/panelLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_margin="1dip"
    android:orientation="vertical" >

</LinearLayout>

<TextView
    android:id="@+id/hexDescription"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/decDescription"
    android:layout_alignRight="@+id/panelLayout"
    android:layout_below="@android:id/tabhost"
    android:text="111"
    android:textSize="14sp" />

   </RelativeLayout>

TabHost には、tabWidget と FrameLayout があります。

グラフィックレイアウトからキャプチャされたスナップショット

ここに画像の説明を入力

http://www.androidhive.info/2011/08/android-tab-layout-tutorial/の作業例

于 2013-04-30T19:28:56.987 に答える