Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何制作GridLayout以相应地更改其子视图的大小? 背景_Android_Androidx_Android Gridlayout - Fatal编程技术网

Android 如何制作GridLayout以相应地更改其子视图的大小? 背景

Android 如何制作GridLayout以相应地更改其子视图的大小? 背景,android,androidx,android-gridlayout,Android,Androidx,Android Gridlayout,我需要做一个类似拨号板的视图,就像在手机应用程序上一样 我使用的是视图的网格布局。每个单元格大小相同,只包含一个简单的文本视图,如果需要,可以更改其字体大小 问题 我已经成功了,但由于某种原因,根据给定的空间,它不能很好地工作 如果它有很大的空间,它工作得很好: 但是,当它变小时(例如:小屏幕、横向、拆分窗口……),只有网格顶部的按钮可见,它们甚至不改变字体大小,好像它们都希望最大化: 我试过的 我试图修改视图的各种属性,但没有任何帮助 不过我知道,手机应用程序的拨号盘并没有改变它的字体大小

我需要做一个类似拨号板的视图,就像在手机应用程序上一样

我使用的是视图的网格布局。每个单元格大小相同,只包含一个简单的文本视图,如果需要,可以更改其字体大小

问题 我已经成功了,但由于某种原因,根据给定的空间,它不能很好地工作

如果它有很大的空间,它工作得很好:

但是,当它变小时(例如:小屏幕、横向、拆分窗口……),只有网格顶部的按钮可见,它们甚至不改变字体大小,好像它们都希望最大化:

我试过的 我试图修改视图的各种属性,但没有任何帮助

不过我知道,手机应用程序的拨号盘并没有改变它的字体大小。当它达到一定大小时,会正常显示,如果它太小,则会更改为不同的布局。这对于横向和拆分窗口模式尤为重要

以下是我编写的代码(我更改“layout\u ConstraintheRight\u percent”的值以检查顶部区域的各种大小):

gradle

...
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
...
QueryKeyboard.kt

class QueryKeyboard @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : GridLayout(context, attrs, defStyle) {
    init {
        orientation = HORIZONTAL
        clipChildren = false
        clipToPadding = false
        columnCount = 3
        rowCount = 4
        //workaround for a weird issue of seeing just 3 huge buttons, instead of all
        val runnable = Runnable {
            for (i in 1..9)
                addView(generateGridTextButton(i.toString()))
            addView(generateGridTextButton("*"))
            addView(generateGridTextButton("0"))
            addView(generateGridTextButton("+"))
        }
        if (isInEditMode)
            runnable.run()
        else
            this.doOnPreDraw { runnable.run() }
    }

    private fun generateGridTextButton(textToShowAndAddUponClick: CharSequence): TextView {
        val tv = LayoutInflater.from(context).inflate(R.layout.grid_text_button, this, false) as TextView
        tv.text = textToShowAndAddUponClick
        return tv
    }
}
class QueryKeyboard @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : GridLayout(context, attrs, defStyle) {
    private var cellBackgroundColor = 0xffff0000.toInt()

    init {
        orientation = HORIZONTAL
        clipChildren = false
        clipToPadding = false
        columnCount = 3
        rowCount = 4
        //workaround for a weird issue of seeing just 3 huge buttons, instead of all
        val runnable = Runnable {
            for (i in 1..9) {
                addView(generateGridTextButton(i.toString()))
            }
            addView(generateGridTextButton("*"))
            addView(generateGridTextButton("0"))
            addView(generateGridTextButton("+"))
        }
        if (isInEditMode)
            runnable.run()
        else
            this.doOnPreDraw { runnable.run() }
    }

    private fun switchColor() {
        cellBackgroundColor = if (cellBackgroundColor == 0xffff0000.toInt()) 0xff00ff00.toInt() else 0xffff0000.toInt()
    }

    private fun generateGridTextButton(textToShowAndAddUponClick: CharSequence): View {
        val view = LayoutInflater.from(context).inflate(R.layout.grid_text_button, this, false)
        switchColor()
        view.setBackgroundColor(cellBackgroundColor)
        view.textView.text = textToShowAndAddUponClick
        return view
    }
}
class QueryKeyboard @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : GridLayout(context, attrs, defStyle) {
    //    private var cellBackgroundColor = 0xffff0000.toInt()
    init {
        orientation = HORIZONTAL
        clipChildren = false
        clipToPadding = false
        columnCount = 3
        rowCount = 4
        for (i in 1..9)
            addView(generateGridTextButton(i.toString()))
        addView(generateGridTextButton("*"))
        addView(generateGridTextButton("0"))
        addView(generateGridTextButton("+"))
    }

    //    private fun switchColor() {
    //        cellBackgroundColor = if (cellBackgroundColor == 0xffff0000.toInt()) 0xff00ff00.toInt() else 0xffff0000.toInt()
    //    }
    private fun generateGridTextButton(textToShowAndAddUponClick: CharSequence): View {
        val view = LayoutInflater.from(context).inflate(R.layout.grid_text_button, this, false)
        //        switchColor()
        //        view.setBackgroundColor(cellBackgroundColor)
        view.textView.text = textToShowAndAddUponClick
        return view
    }
}
grid\u text\u button.xml

<androidx.appcompat.widget.AppCompatTextView 
   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="wrap_content"
   android:layout_height="wrap_content"
   android:background="?attr/selectableItemBackgroundBorderless"
   android:breakStrategy="balanced"
   android:clickable="true"
   android:focusable="true"
   android:focusableInTouchMode="false"
   android:gravity="center"
   android:textColor="#000"
   android:textSize="36dp"
   app:autoSizeMaxTextSize="36dp"
   app:autoSizeMinTextSize="12dp"
   app:layout_columnWeight="1"
   app:layout_gravity="fill"
   app:layout_rowWeight="1"
   tools:layout_gravity="center"
   tools:targetApi="m"
   tools:text="1" />
<FrameLayout
    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="wrap_content" android:layout_height="wrap_content"
    app:layout_columnWeight="1" app:layout_gravity="fill" app:layout_rowWeight="1">

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="?attr/selectableItemBackgroundBorderless" android:breakStrategy="balanced"
        android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" android:gravity="center"
        android:textColor="#000" android:textSize="36sp" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp"
        tools:layout_gravity="center" tools:targetApi="m" tools:text="1" />
</FrameLayout>
 <LinearLayout 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" 
android:orientation="vertical"
 android:weightSum="2"
tools:context=".MainActivity">

<TextView
    android:id="@+id/textView" 
    android:layout_width="match_parent" 
    android:layout_height="0dp"
    android:background="#33ff0000"
    android:gravity="center" android:text="some content"
    android:layout_weight="1" />

 <com.sample.myapplication.QueryKeyboard
    android:id="@+id/queryKeyboard" 
   android:layout_width="match_parent" 
    android:layout_height="0dp"
    android:layout_weight="1" />
 </LinearLayout>
  <LinearLayout 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" 
android:orientation="horizontal"
 android:weightSum="2"
tools:context=".MainActivity">
<TextView
    android:id="@+id/textView" 
    android:layout_width="0dp" 
    android:layout_height="match_parent"
    android:background="#33ff0000"
    android:gravity="center" android:text="some content"
    android:layout_weight="1" />

 <com.sample.myapplication.QueryKeyboard
    android:id="@+id/queryKeyboard" 
   android:layout_width="0dp" 
    android:layout_height="match_parent"
    android:layout_weight="1" />
 </LinearLayout>
<FrameLayout
    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="wrap_content"
    android:layout_height="wrap_content" android:background="?attr/selectableItemBackgroundBorderless"
    android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" app:layout_columnWeight="1"
    app:layout_gravity="fill" app:layout_rowWeight="1" tools:layout_gravity="center">

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center" android:breakStrategy="balanced" android:gravity="center"
        android:textColor="#000" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp" tools:targetApi="m"
        tools:text="1" />
</FrameLayout>
以下是两种情况,一种是正常工作,另一种是不正常工作:

和以前一样。获取3个单元格,文本未居中,且未自动调整字体大小

问题
  • 为什么单元格不调整大小,包括每个单元格的字体大小?为什么我只看到3个细胞,而它太小了?我怎样才能修好它

  • 有更好的选择吗?我想我可以在多个LinearLayout实例中使用LinearLayout,但在这种情况下这很奇怪。。。毕竟,您多久使用一次GridLayout…:)

  • 我如何检测它是否太小,从而切换到另一个布局,比如在手机应用程序上,包括它们使用的各种情况(甚至是拆分窗口)?他们可能只是在布局中使用了限定符吗?如果是,建议在这种情况下使用哪种方法

  • 为什么单元格不调整大小,包括每个单元格的字体大小?我怎样才能修好它

    单元格可以基于两个主要约束动态调整其大小:
    其父单元格的权重
    其textsize或childview的值
    。单元格上的文本大小固定会导致设计不一致。要解决此问题,您可以在parentview上设置布局权重,使单元格宽度和高度与父级匹配,或者为目标设备创建不同尺寸的textsize

    有更好的选择吗?我想我可以在多个LinearLayout实例中使用LinearLayout,但在这种情况下这很奇怪。。。毕竟,您多久使用一次GridLayout…:)

    有一种更好的方法,这就是您当前正在实现的
    GridLayout
    。使用缩进线性布局将限制您获得许多好处,并使您编写更多的代码,例如,您需要切换或设置单元格动画、访问第n行的第n列、动态更改单元格跨度等。所有这些都可以通过Gridlayout完成,只需几行代码。它比你想象的更强大

    我如何检测它是否太小,从而切换到另一个布局,比如在手机应用程序上,包括它们使用的各种情况(甚至是拆分窗口)?他们可能只是在布局中使用了限定符吗?如果是,建议在这种情况下使用哪种方法

    你没有什么需要检测的,只需遵循指导原则,Android就可以进行检测

    这里有几种方法,您可以根据这些方法管理您的场景

    第一名: 为您的活动创建布局横向和纵向模式(
    layout/activity.xml
    layout land/activity.xml

    layout/activity.xml

    <androidx.appcompat.widget.AppCompatTextView 
       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="wrap_content"
       android:layout_height="wrap_content"
       android:background="?attr/selectableItemBackgroundBorderless"
       android:breakStrategy="balanced"
       android:clickable="true"
       android:focusable="true"
       android:focusableInTouchMode="false"
       android:gravity="center"
       android:textColor="#000"
       android:textSize="36dp"
       app:autoSizeMaxTextSize="36dp"
       app:autoSizeMinTextSize="12dp"
       app:layout_columnWeight="1"
       app:layout_gravity="fill"
       app:layout_rowWeight="1"
       tools:layout_gravity="center"
       tools:targetApi="m"
       tools:text="1" />
    
    <FrameLayout
        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="wrap_content" android:layout_height="wrap_content"
        app:layout_columnWeight="1" app:layout_gravity="fill" app:layout_rowWeight="1">
    
        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:background="?attr/selectableItemBackgroundBorderless" android:breakStrategy="balanced"
            android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" android:gravity="center"
            android:textColor="#000" android:textSize="36sp" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp"
            tools:layout_gravity="center" tools:targetApi="m" tools:text="1" />
    </FrameLayout>
    
     <LinearLayout 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" 
    android:orientation="vertical"
     android:weightSum="2"
    tools:context=".MainActivity">
    
    <TextView
        android:id="@+id/textView" 
        android:layout_width="match_parent" 
        android:layout_height="0dp"
        android:background="#33ff0000"
        android:gravity="center" android:text="some content"
        android:layout_weight="1" />
    
     <com.sample.myapplication.QueryKeyboard
        android:id="@+id/queryKeyboard" 
       android:layout_width="match_parent" 
        android:layout_height="0dp"
        android:layout_weight="1" />
     </LinearLayout>
    
      <LinearLayout 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" 
    android:orientation="horizontal"
     android:weightSum="2"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView" 
        android:layout_width="0dp" 
        android:layout_height="match_parent"
        android:background="#33ff0000"
        android:gravity="center" android:text="some content"
        android:layout_weight="1" />
    
     <com.sample.myapplication.QueryKeyboard
        android:id="@+id/queryKeyboard" 
       android:layout_width="0dp" 
        android:layout_height="match_parent"
        android:layout_weight="1" />
     </LinearLayout>
    
    <FrameLayout
        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="wrap_content"
        android:layout_height="wrap_content" android:background="?attr/selectableItemBackgroundBorderless"
        android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" app:layout_columnWeight="1"
        app:layout_gravity="fill" app:layout_rowWeight="1" tools:layout_gravity="center">
    
        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_gravity="center" android:breakStrategy="balanced" android:gravity="center"
            android:textColor="#000" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp" tools:targetApi="m"
            tools:text="1" />
    </FrameLayout>
    
    然后在网格按钮textsize中调用

     android:textSize="@dimens/_30ssp"
    

    好的,我对布局文件做了一些修改,以避免3单元问题。这种情况仍然存在,但规模要小得多。遗憾的是,字体大小问题仍然没有改变,这次甚至是非常小的问题

    如果有人知道为什么会这样,请告诉我。现在我认为这是一个bug,所以我已经报告过。 grid\u text\u button.xml

    <androidx.appcompat.widget.AppCompatTextView 
       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="wrap_content"
       android:layout_height="wrap_content"
       android:background="?attr/selectableItemBackgroundBorderless"
       android:breakStrategy="balanced"
       android:clickable="true"
       android:focusable="true"
       android:focusableInTouchMode="false"
       android:gravity="center"
       android:textColor="#000"
       android:textSize="36dp"
       app:autoSizeMaxTextSize="36dp"
       app:autoSizeMinTextSize="12dp"
       app:layout_columnWeight="1"
       app:layout_gravity="fill"
       app:layout_rowWeight="1"
       tools:layout_gravity="center"
       tools:targetApi="m"
       tools:text="1" />
    
    <FrameLayout
        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="wrap_content" android:layout_height="wrap_content"
        app:layout_columnWeight="1" app:layout_gravity="fill" app:layout_rowWeight="1">
    
        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:background="?attr/selectableItemBackgroundBorderless" android:breakStrategy="balanced"
            android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" android:gravity="center"
            android:textColor="#000" android:textSize="36sp" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp"
            tools:layout_gravity="center" tools:targetApi="m" tools:text="1" />
    </FrameLayout>
    
     <LinearLayout 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" 
    android:orientation="vertical"
     android:weightSum="2"
    tools:context=".MainActivity">
    
    <TextView
        android:id="@+id/textView" 
        android:layout_width="match_parent" 
        android:layout_height="0dp"
        android:background="#33ff0000"
        android:gravity="center" android:text="some content"
        android:layout_weight="1" />
    
     <com.sample.myapplication.QueryKeyboard
        android:id="@+id/queryKeyboard" 
       android:layout_width="match_parent" 
        android:layout_height="0dp"
        android:layout_weight="1" />
     </LinearLayout>
    
      <LinearLayout 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" 
    android:orientation="horizontal"
     android:weightSum="2"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView" 
        android:layout_width="0dp" 
        android:layout_height="match_parent"
        android:background="#33ff0000"
        android:gravity="center" android:text="some content"
        android:layout_weight="1" />
    
     <com.sample.myapplication.QueryKeyboard
        android:id="@+id/queryKeyboard" 
       android:layout_width="0dp" 
        android:layout_height="match_parent"
        android:layout_weight="1" />
     </LinearLayout>
    
    <FrameLayout
        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="wrap_content"
        android:layout_height="wrap_content" android:background="?attr/selectableItemBackgroundBorderless"
        android:clickable="true" android:focusable="true" android:focusableInTouchMode="false" app:layout_columnWeight="1"
        app:layout_gravity="fill" app:layout_rowWeight="1" tools:layout_gravity="center">
    
        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_gravity="center" android:breakStrategy="balanced" android:gravity="center"
            android:textColor="#000" app:autoSizeMaxTextSize="36sp" app:autoSizeMinTextSize="12sp" tools:targetApi="m"
            tools:text="1" />
    </FrameLayout>
    
    GridLayout实现的一个替代方案没有这个问题,但我使用它仍然很奇怪,正如我所写的,它是一个LinearLayout中的LinearLayout:

    class QueryKeyboard2 @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : LinearLayout(context, attrs, defStyleAttr) {
        //private var cellBackgroundColor = 0xffff0000.toInt()
    
        init {
            orientation = VERTICAL
            clipChildren = false
            clipToPadding = false
            val columnCount = 3
            val rowCount = 4
            val cellsList = ArrayList<View>()
            for (i in 1..9)
                cellsList.add(generateGridTextButton(i.toString()))
            cellsList.add(generateGridTextButton("*"))
            cellsList.add(generateGridTextButton("0"))
            cellsList.add(generateGridTextButton("+"))
            for (i in 0 until rowCount) {
                val rowLayout = generateRowLayout(context)
                for (j in 0 until columnCount) {
                    val cellView = cellsList[i * columnCount + j]
                    val cellLayoutParams = LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT)
                    cellLayoutParams.weight = 1f
                    rowLayout.addView(cellView, cellLayoutParams)
                }
                //            switchColor()
                //            rowLayout.setBackgroundColor(cellBackgroundColor)
                addView(rowLayout)
            }
        }
    
        private fun generateRowLayout(context: Context): LinearLayout {
            val result = LinearLayout(context)
            result.layoutParams = LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0)
            (result.layoutParams as LayoutParams).weight = 1f
            result.orientation = HORIZONTAL
            return result
        }
    
        //private fun switchColor() {
        //    cellBackgroundColor = if (cellBackgroundColor == 0xffff0000.toInt()) 0xff00ff00.toInt() else 0xffff0000.toInt()
        //}
    
        private fun generateGridTextButton(textToShowAndAddUponClick: CharSequence): View {
            val view = LayoutInflater.from(context).inflate(R.layout.grid_text_button, this, false)
            //switchColor()
            //view.setBackgroundColor(cellBackgroundColor)
            view.textView.text = textToShowAndAddUponClick
            return view
        }
    }
    
    class QueryKeyboard2@JVM重载构造函数(上下文:context,attrs:AttributeSet?=null,defStyleAttr:Int=0):LinearLayout(上下文,attrs,defStyleAttr){
    //私有变量cellBackgroundColor=0xffff0000.toInt()
    初始化{
    方向=垂直
    clipChildren=false
    cliptoppadding=false
    val columnCount=3
    val行计数=4
    val cellsList=ArrayList()
    对于(1..9中的i)
    cellsList.add(generateGridTextButton(i.toString()))
    cellsList.add(generateGridTextButton(“*”))
    cellsList.add(generateGridTextButton(“0”))
    cellsList.add(generateGridTextButton(“+”))
    for(在0中输入i,直到行计数){
    val rowLayout=generateRowLayout(上下文)
    对于(0中的j,直到列计数){
    val cellView=cellsList[i*columnCount+j]
    val cellLayoutParams=LinearLayout.LayoutParams(0,ViewGroup.LayoutParams.MATCH_父项)
    cellLayoutParams.weight=1f
    rowLayout.addView(cellView、cellLayoutParams)
    }
    //switchColor()
    //rowLayout.setBackgroundColor(cellBackgroundColor)
    添加视图(行布局)
    }
    }
    私人娱乐生成器布局(上下文:上下文):线性布局{
    val结果=线性布局(上下文)
    结果