0

私はRelativeLayout(RL)を使用して、リストビュー(lv)と、テキストビュー(tv)、テキストの編集(et)、ボタン(btn)、プログレスバー( pb)。

シナリオ
1.子ビューを親コンテナビューに追加する場合。相対レイアウト(rl)、順序:
RL(Btn1-> Btn2-> tv1-> tv2-> LV-> pb)。
そうすれば問題はありません。つまり、例外なし、問題なしです。
2.しかし、
RL(tv1-> tv2-> LV-> Btn1-> Btn2-> pb)のように順序を変更すると、
次に、クラスキャスト例外が発生します。

注:2つのボタンはリストビューの上に配置する必要があります。どちらもソーシャルWebサイトのボタンであるため、FacebookとTwitterを意味します。

XMLコード:

<RelativeLayout
    android:id="@+id/rlfornews"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dip"
    android:layout_marginTop="5dip"
    android:background="@drawable/newsbg"
    android:orientation="vertical"
    android:paddingBottom="5dip" >

    <Button
        android:id="@+id/btnbasetw"
        android:layout_width="30dip"
        android:layout_height="30dip"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="10dip"
        android:layout_marginLeft="5dip"
        android:layout_marginRight="10dip"
        android:background="@drawable/twitter_icon"
        android:visibility="gone" />

    <Button
        android:id="@+id/btnbasefb"
        android:layout_width="30dip"
        android:layout_height="30dip"
        android:layout_centerVertical="true"
        android:layout_marginBottom="10dip"
        android:layout_toLeftOf="@id/btnbasetw"
        android:background="@drawable/facebook_icon"
        android:visibility="gone" />

    <TextView
        android:id="@+id/tvnewscon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dip"
        android:background="@drawable/newstitle"
        android:gravity="center_vertical"
        android:paddingLeft="8dip"
        android:shadowColor="@color/black"
        android:shadowDy="1"
        android:shadowRadius="1"
        android:text="@string/news"
        android:textColor="@color/white" />

    <TextView
        android:id="@+id/tvfornews"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvnewscon"
        android:layout_marginTop="10dip"
        android:gravity="center"
        android:text="@string/no_data_found"
        android:visibility="gone" />

    <ListView
        android:id="@+id/lvdashboardnews"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/tvnewscon"
        android:padding="4dip"
        android:visibility="visible" >
    </ListView>

    <ProgressBar
        android:id="@+id/pbfornews"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
</RelativeLayout>

注:プログレスバーは下にある場合がありますが、一部のデータが読み込まれているのはユーザー情報のみです。そのデータを取得すると、その可視性がVIEW.GONE状態になり、リストビューが既に存在します。私の質問は、最初のシナリオに従うと、ずっとプログレスバーがありますが、クラスキャスト例外が発生しません。しかし、シナリオ2に変更すると、例外が発生します。それでは、なぜ発生するのでしょうか。

4

1 に答える 1