0

我想以编程方式更改 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>

你有什么主意吗 ?

谢谢

4

1 回答 1

1

我的猜测:您应该使用TableRow.LayoutParams,而不是LinearLayout.LayoutParams. 但这只是猜测,没有看到实际错误;每当您询问有关 SO 崩溃的问题时,您都应该真正将日志包含在错误的回溯中。

于 2011-02-23T15:43:05.973 回答