1

私はアプリを作成しており、3 つの imageViews と 1 つの textview を含む TableRows を動的に追加しています (単一の tableRow):

IV1 --- TEXTVIEW ----- IV2 ----- IV3

(私が達成しようとしていることを理解するのに役立つことを願っています) TextView を中央に配置することに問題はありませんが、ImageViews を中央に配置することはできません。

TableLayout.LayoutParams tparams = newTableLayout.LayoutParams(
    TableLayout.LayoutParams.WRAP_CONTENT,
    TableLayout.LayoutParams.WRAP_CONTENT, 
    Gravity.CENTER_VERTICAL);
iv1.setLayoutParams(tparam);
iv2.setLayoutParams(fparams);
iv3.setLayoutParams(fparams);

しかし、私はそれで始まるエラーを取得しています:

11-06 16:37:06.809: E/AndroidRuntime(6578): java.lang.ClassCastException: android.widget.TableLayout$LayoutParams
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableRow.getColumnsWidths(TableRow.java:295) 
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableLayout.findLargestCells(TableLayout.java:500)
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableLayout.measureVertical(TableLayout.java:465)

手伝ってくれてありがとう

4

1 に答える 1

1

の代わりにTableRow.LayoutParamsを使用してみてくださいTableLayout.LayoutParams。クラス キャスト例外が発生しています。これは、LayoutParams を間違ったタイプの LayoutParams にキャストしようとしていることを意味します。ビューは実際にはTableRowではなく の子であるためTableLayout、 を使用する必要がありますTableRow.LayoutParams

于 2012-11-06T17:04:15.687 に答える