java.lang.ClassCastException:androidx.constraintlayout.widget.ConstraintLayout 无法转换为 android.widget.TableRow

问题描述 投票:0回答:1

如果您无法将 tablelayout 子项转换为 TableRow,那么如何访问表行及其列。我有一个表格布局,并且表格行是在 onCreate 中以编程方式添加的。每次运行以下代码时,程序都会因错误而崩溃;

java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to android.widget.TableRow

val t = stableLayout.getChildAt(index:1) as TableRow
android kotlin casting tablelayout tablerow
1个回答
0
投票

我不断收到错误的原因是因为在我的 XML 文件中定义了 tablerow 的列将是什么和具有什么,但整个 XML 文件是用 ConstraintLayout 嵌套的。这是我没有意识到的。我发现当你从 TableLayout 中 getChildAt 时,它会自动成为 TableRow 视图,而它不是 ConstraintLayout。意识到这一点后,我将 ConstraintLayout 更改为 LinearLayout。然后,我就能够访问 TableRow 及其列。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
© www.soinside.com 2019 - 2024. All rights reserved.