如何在Android Studio的GridLayout中使按钮分布于整个网格,主要使用以下几个属性: app:layout_columnWeight=”1″ app:layout_rowWeight=”1″ app:layout_gravity=”fill” 部分XML代码如下: <?xml version=”1.0″ encoding=”utf-8″?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android” xmlns:app=”http://schemas.android.com/apk/res-auto” xmlns:tools=”http://schemas.android.com/tools” android:layout_width=”match_parent” android:layout_height=”match_parent” tools:context=”.MainActivity”> <androidx.gridlayout.widget.GridLayout android:layout_width=”0dp” android:layout_height=”0dp” app:layout_constraintBottom_toBottomOf=”parent” app:layout_constraintLeft_toLeftOf=”parent” app:layout_constraintRight_toRightOf=”parent” app:layout_constraintTop_toTopOf=”parent”> <Button android:id=”@+id/hello” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:onClick=”buttonTapped” android:text=”Hello” app:layout_column=”0″ app:layout_columnWeight=”1″ app:layout_rowWeight=”1″ app:layout_constraintBottom_toBottomOf=”parent” app:layout_constraintLeft_toLeftOf=”parent” app:layout_constraintRight_toRightOf=”parent” app:layout_constraintTop_toTopOf=”parent” app:layout_gravity=”fill” app:layout_row=”0″ /> …以下省略 效果图如下:

findViewById返回gridLayout导致异常解决

以下语句导致了程序异常, GridLayout gridLayout = (GridLayout)findViewById(R.id.gridLayout); 参考链接,在XML中定义的gridLayout与在程序中定义的gridLayout不一致,导至了程序异常,改为一致的定义,问题解决。 程序中的定义为: import android.widget.GridLayout; 然而XML中的定义为: androidx.gridlayout.widget.GridLayout 解决方案: 程序改为以下: androidx.gridlayout.widget.GridLayout gridLayout = findViewById(R.id.gridLayout); 额外的问题,layout如果重叠,如何调整不同layout的显示顺序,在Android Studio中的Component Tree里调整先后顺序,就可以调整layout显示的优先级。 Reference App crashing in the part of Grid layout declaration