私は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に変更すると、例外が発生します。それでは、なぜ発生するのでしょうか。