Gridlayout 布局在某些 android 上无法正常工作

Gridlayout layout not working correctly on some android

我正在研究 grid-layout 并设计了 3 列和 5 行的布局。它在大多数 android 上工作正常,但我的一些应用程序用户报告说在他们的 android 上它显示非常难看的布局。我无法弄清楚界面有什么问题。它向我显示了正确的 3 列,但在我的一些用户 android 上,grid-layout 单元格超出了屏幕并且没有显示另外 2 个单元格。

由于字符限制 30,000,我删除了第 5 行代码

<GridLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:alignmentMode="alignMargins"
                    android:columnCount="3"
                    android:columnOrderPreserved="false"
                    android:rowCount="6">

                    <androidx.cardview.widget.CardView
                        android:id="@+id/numsection"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="verify"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newsim" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="نمبرملکیت"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="cnic"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newothersims" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="ملحقہ نمبرز"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:id="@+id/emergencysection"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="random"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newemergency" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="ایمرجینسی"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="drivingmenu"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newdriving" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="ڈرائیونگ لائسنس"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="vehiclemenu"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newvehicle" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="ملکیت وہیکل"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="idcardaddress"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/id" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="آئیڈی انفارمیشن"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="punjabland"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newpunjabland" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="پنجاب لینڈ"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:id="@+id/freshsection"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="newdata"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newoffice" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="فریش ڈیٹا"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:id="@+id/nadraclick"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="newdata"
                        app:cardElevation="5dp">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/nadra" />

                            <TextView
                                android:id="@+id/activate"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="نادرا رجسٹریشن"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="ip"
                        app:cardElevation="5dp">

                        <com.flyco.labelview.LabelView xmlns:lv="http://schemas.android.com/apk/res-auto"
                            android:id="@+id/iptag"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left"
                            android:paddingLeft="1dp"
                            android:paddingRight="1dp"
                            lv:lv_background_color="#FF5722"
                            lv:lv_fill_triangle="true"
                            lv:lv_gravity="TOP_LEFT"
                            lv:lv_text="Global"
                            lv:lv_text_all_caps="false"
                            lv:lv_text_size="10sp" />


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newip" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="آئی پی انفارمیشن"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="telenorblock"
                        app:cardElevation="5dp">

                        <com.flyco.labelview.LabelView xmlns:lv="http://schemas.android.com/apk/res-auto"
                            android:id="@+id/telenortag"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left"
                            android:paddingLeft="1dp"
                            android:paddingRight="1dp"
                            lv:lv_background_color="#FF5722"
                            lv:lv_fill_triangle="true"
                            lv:lv_gravity="TOP_LEFT"
                            lv:lv_text="Global"
                            lv:lv_text_all_caps="false"
                            lv:lv_text_size="10sp" />


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/telenor" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="ٹیلینارنمبربلاک"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>

                    <androidx.cardview.widget.CardView
                        android:id="@+id/fbhacksection"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_rowWeight="1"
                        android:layout_columnWeight="1"
                        android:layout_margin="1dp"
                        android:onClick="FacebookHack"
                        app:cardElevation="5dp">

                        <com.flyco.labelview.LabelView xmlns:lv="http://schemas.android.com/apk/res-auto"
                            android:id="@+id/fbhacktag"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left"
                            android:paddingLeft="1dp"
                            android:paddingRight="1dp"
                            lv:lv_background_color="#FF5722"
                            lv:lv_fill_triangle="true"
                            lv:lv_gravity="TOP_LEFT"
                            lv:lv_text="Global"
                            lv:lv_text_all_caps="false"
                            lv:lv_text_size="10sp" />


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="?selectableItemBackground"
                            android:gravity="center"
                            android:orientation="vertical"
                            android:paddingTop="15dp"
                            android:paddingBottom="5dp">


                            <ImageView
                                android:layout_width="50dp"
                                android:layout_height="50dp"
                                android:src="@mipmap/newhacking" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:fontFamily="@font/jameel"
                                android:text="فیسبک ہیک"
                                android:textSize="20sp"
                                android:textStyle="bold" />

                        </LinearLayout>


                    </androidx.cardview.widget.CardView>


                </GridLayout>

部分截图

Actual Layout

On some android shows ugly interface

试试这个解决方案:

  1. 将创建 recyclerview

                 <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/rc_txt_view"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
                 app:spanCount="3" />
    
  2. 我们将创建行视图

                    <androidx.cardview.widget.CardView
                    android:id="@+id/emergencysection"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="1dp"
                    android:onClick="random"
                    app:cardElevation="5dp">
    
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="?selectableItemBackground"
                        android:gravity="center"
                        android:orientation="vertical"
                        android:paddingTop="15dp"
                        android:paddingBottom="5dp">
                        <ImageView
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:src="@mipmap/newemergency" />
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/jameel"
                            android:text="ایمرجینسی"
                            android:textSize="20sp"
                            android:textStyle="bold" />
                    </LinearLayout>