【问题标题】:How to center image dynamically in android table layout如何在android表格布局中动态居中图像
【发布时间】:2012-11-06 15:57:28
【问题描述】:

我正在制作一个应用程序,我正在动态添加 TableRows,其中包括 3 个 imageViews 和一个 textview,它看起来像这样(单个 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)

感谢您的帮助

【问题讨论】:

    标签: android dynamic imageview center android-tablelayout


    【解决方案1】:

    尝试使用TableRow.LayoutParams 而不是TableLayout.LayoutParams。您得到一个类转换异常,这意味着它试图将您的 LayoutParams 转换为错误类型的 LayoutParams。由于视图实际上是TableRow 的子代,而不是TableLayout,因此您应该使用TableRow.LayoutParams

    【讨论】:

    • 现在没有错误了,但是还是不行,还有什么想法吗?
    • 我可能会使用 LinearLayouts 而不是 TableLayout。在我看来,它们更易于使用。如果你有很多行并且需要滚动,你应该使用列表视图并且每行都是一个 LinearLayout
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多