0
我遇到了水平線性佈局問題,其中有一系列像瓷磚的圖像。我有時顯示3個瓷磚,有時候是5個。我編程設置2個瓷磚當我只需要顯示3時就「消失」了。我需要以中心顯示它們,但是僅當我顯示3個瓷磚時。什麼我的佈局是這樣的:如何以編程方式更改LinearLayout的重力?
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none">
<!-- container -->
<LinearLayout
android:id="@+id/tile_container"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center">
<!-- tile1 -->
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/img_panel"/>
</FrameLayout>
<!-- tile2 -->
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/img_panel"/>
</FrameLayout>
<!-- tile3 -->
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/img_panel"/>
</FrameLayout>
<!-- tile4 -->
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/img_panel"/>
</FrameLayout>
<!-- tile5 -->
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/img_panel"/>
</FrameLayout>
</LinearLayout>
</HorizontalScrollView>
我試圖通過在代碼中這樣做是爲了修復它,但我得到一個ClassCastException似乎是因爲它是由一個HorizontalScrollView包裹。有人有主意嗎?
ViewGroup tileContainer = (ViewGroup)this.findViewById(R.id.tile_container);
ViewGroup.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT,Gravity.CENTER);
tileContainer.setLayoutParams(lp);
我仍然得到一個ClassCastException ... 02-29 14:08:34.238:E/AndroidRuntime(9602):致命異常:main 02-29 14:08:34.238:E/AndroidRuntime(9602):java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams 02-29 14:08:34.238:E/AndroidRuntime(9602):\t在android.wi dget.FrameLayout.onLayout(FrameLayout.java:293) 02-29 14:08:34.238:E/AndroidRuntime(9602):\t at android.widget.HorizontalScrollView.onLayout(HorizontalScrollView.java:1297) – 2012-02-29 19:12:11
project> clean on eclipse IDE應該可以解決這個問題 – Royi 2012-02-29 19:20:58
不,當它碰到HorizontalScrollView的onLayout()方法時仍然會發生異常。 – 2012-02-29 19:56:10