Установите вес ViewFlipper программно - PullRequest
0 голосов
/ 23 февраля 2011

Я бы хотел программно изменить вес ViewFlipper.У меня есть TableRow, в котором у меня есть 2 столбца.Первый столбец содержит элемент RelativeLayout, когда второй столбец содержит ViewFlipper.Мой 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>

У вас есть идеи?

Спасибо

1 Ответ

1 голос
/ 23 февраля 2011

Мое предположение: вы должны использовать TableRow.LayoutParams, а не LinearLayout.LayoutParams. Но это только предположение, не видя реальной ошибки; каждый раз, когда вы задаете вопрос о сбое в SO, вы должны действительно включать журнал с отслеживанием вашей ошибки.

...