当前位置: 首页 > 知识库问答 >
问题:

如何在Android中动态改变gridview的行和列

华恩
2023-03-14

我正在我的活动中使用网格视图。我还有一个自定义网格添加器来显示每个网格上的图像和文本视图。

在启动我的活动时。我需要根据值动态创建网格行和列。

count = 4   2x2 grid
count = 9   3x3 grid
count = 16  4x4 grid

请告诉我如何实现此功能。

我的网格视图:

 <GridView
        android:id="@+id/Favorite_GridView"
        android:layout_width="wrap_content"
        android:layout_height="300dp"
        android:layout_marginTop="10dp"
        android:layout_below="@id/Date_RelativeLayout"           
        android:listSelector="@drawable/gridview_norecode_selector"
        android:numColumns="auto_fit"                  />

我已经使列 android:num列列=“auto_fit”所以它默认为2列。

我也有一个定制的网格适配器

    <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/grid_color_selector" >
<ImageView
    android:id="@+id/image"
   android:layout_width="100dp"
    android:layout_height="100dp"
   android:layout_marginRight="10dp"
   />        
<TextView
    android:id="@+id/Day_TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/gridview_line_norecord"
    android:gravity="center"
    android:textColor="@android:color/white"
    android:textSize="24sp"
    android:text="Hello" />

我还在我的活动中使用了这个函数

  if(newList.length > 4)
    {
        mgridView.setColumnWidth(350);

    }

但我担心在活动中手动给出值。因为我觉得它可能会给横向模式提供异常的UI。

请帮助我如何继续。

共有1个答案

顾学真
2023-03-14

hoomi的评论是对的。

使用RecyclerView和GridLayoutManager。!在.xml中

<android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:numColumns="2"
            android:horizontalSpacing="@dimen/gridview_horizontal_spacing"
            android:verticalSpacing="@dimen/gridview_vertical_spacing"
            android:id="@+id/recyclerView" />

回收商视图.set布局管理器(新的网格布局管理器(上下文,编号));

< code > GridView . setnumcolumns(number);

 类似资料:
  • 本文向大家介绍Android实现GridView中ImageView动态变换的方法,包括了Android实现GridView中ImageView动态变换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android实现GridView中ImageView动态变换的方法。分享给大家供大家参考。具体如下: 使用YY影音的时候,发现点击GridView的某一个Item,Item里面的图标会

  • 我正在用android创建一款纸牌游戏(21点)。前两张卡是easy card1和card2,但是我想按一下“点击我”按钮,发一张新卡,并将其分配给card3、card4等。有没有任何方法可以做到这一点,而无需创建所需的最大变量数,并使用if-then语句检查它们是否被分配了值?

  • (0,0)(0,1) (1,0)(1,1) 像这种格式一样,我需要显示,也需要根据数据大小水平和垂直滚动

  • 我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语切换到英语,布局应该从RTL更改为LTR,反之亦然。我尝试使用onConfigUserOnChanged(),但它没有被触发。 更改区域设置:强制活动重新加载资源?找到了

  • 问题内容: 我想创建一个Laravel Web应用程序,允许管理员用户使用Web后端系统更改.env文件中的某些变量(例如数据库凭据)。但是,如何保存更改? 问题答案: 没有内置的方法可以做到这一点。如果您确实想更改文件的内容,则必须结合使用PHP的文件写入方法和某些字符串替换。为了获得一些启发,您应该看一下命令:KeyGenerateCommand.php: 构建文件路径并检查是否存在后,该命令

  • 我如何在android studio中动态设置src属性(第7行),我尝试更改backgroundResource,但结果不一样 XML文件 Java代码