Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Java 更改第一个GridView列的大小_Java_Android_Gridview_Android Arrayadapter - Fatal编程技术网

Java 更改第一个GridView列的大小

Java 更改第一个GridView列的大小,java,android,gridview,android-arrayadapter,Java,Android,Gridview,Android Arrayadapter,我试图实现GridView的第一列比其他四列宽一点: 正如您在屏幕截图中看到的,第一列不够宽,无法在不换行的情况下显示整个日期。由于其他四列中还有一些空间,我想缩小它们,并给第一列多一点宽度 目前,我正在使用一个带有简单列表项的ArrayAdapter来实现我当前的结果 ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values); testView.setAdapter(a

我试图实现GridView的第一列比其他四列宽一点:

正如您在屏幕截图中看到的,第一列不够宽,无法在不换行的情况下显示整个日期。由于其他四列中还有一些空间,我想缩小它们,并给第一列多一点宽度

目前,我正在使用一个带有简单列表项的ArrayAdapter来实现我当前的结果

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values);
testView.setAdapter(adapter);
GridView的XML如下所示:

<GridView
    android:id="@+id/testView"
    android:background="#eee"
    android:numColumns="5"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginEnd="0dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginStart="0dp"
    app:layout_constraintHorizontal_bias="0"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginTop="2dp"
    app:layout_constraintTop_toBottomOf="@+id/button3"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="8dp" />

我如何以合理的方式解决这个问题

编辑:
我不想像在可能的副本中那样更改所有列的大小。我只想改变第一个的尺寸

利用跨度大小获得所需的柱尺寸

GridLayoutManager manager = new GridLayoutManager(this, 10); // 3 cols of 3 + 1 col of 1
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
  @Override
  public int getSpanSize(int position) {
    if (position % 4 == 3)
       return 1; // Fourth column is 1x
    else
       return 3; // Remaining columns are 3x
  }
});
recyclerView.setLayoutManager(manager);
这只是使用span的一个示例,而不是您的场景的解决方案


希望这能对您有所帮助。

可能重复@NoumanCh您提到的主题没有得到满意的解决。什么是
简单列表项目1
?@M.Prokhorov@PeterPan,如果它是最简单的形式(即只有一个值和标题),那么这意味着您的列表适配器没有行-这是,考虑到您需要表和行,这意味着Nourman建议的
TableLayout
将解决您的问题。