我想以编程方式更改 ViewFlipper 的权重。我有一个 TableRow,其中有 2 列。当第二列包含 ViewFlipper 时,第一列包含一个 RelativeLayout 元素。我的 ViewFlipper 包含 2 个视图。不知何故,在我的 Java 代码中,当我单击一个按钮时,我更改了 ViewFlipper 的可见视图。我想要做的是,当我更改 ViewFlipper 视图(通过调用 showNext())时,能够更改 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>
你有什么主意吗 ?
谢谢