我想以編程方式更改ViewFlipper的體重。 我有一個TableRow,我有2列。當第二列包含ViewFlipper時,第一列包含一個RelativeLayout元素。 我的ViewFlipper包含2個視圖。不知何故,在我的Java代碼中,當我點擊一個按鈕時,我改變了ViewFlipper的可見視圖。我想要做的是,當我更改ViewFlipper視圖(通過調用showNext())時,可以更改ViewFlipper權重,使其在屏幕中更大。以編程方式設置ViewFlipper體重
換句話說,我行的第一列的權重= 1,第二個(ViewFlipper)的權重= 0.8。當我點擊一個按鈕時,我想以編程方式更改這些權重。 這可能嗎?怎麼樣 ?以下是我的XML代碼。
我在網上搜索,我發現這個解決方案:
myFlipper.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 0.3f));
這是不行的,它崩潰,這一點,我認爲正常的,因爲ViewFlipper不是LinearLayout中。
這裏是我的XML代碼:
<TableRow
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#00000000" >
<RelativeLayout
android:id="@+id/rltest"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_centerInParent="true"
android:paddingLeft="6px"
android:paddingRight="6px"
android:background="#00000000" >
<TextView
android:id="@+id/tvtest"
android:layout_width="match_parent"
android:layout_height="60px"
android:layout_alignParentLeft="true"
android:textColor="#FFFFFF"
android:textSize="22px"
android:singleLine="true"
android:background="#00000000"
android:gravity="center_vertical" />
</RelativeLayout>
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.8"
android:background="#00000000" >
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="60px" />
<LinearLayout
android:id="@+id/lltest"
android:layout_width="match_parent"
android:layout_height="60px"
android:layout_centerInParent="true"
android:background="#00000000"
android:gravity="center" />
</ViewFlipper>
</TableRow>
你有什麼想法?
感謝
你是對的,它與TableRow.LayoutParams一起工作,非常感謝。我很抱歉忘記了崩潰日誌,我不確定它可以幫助。謝謝Yoni。 – Vincent 2011-02-23 15:52:29