在Android中创建类似GridView的布局而不使用GridView

在Android中创建类似GridView的布局而不使用GridView,android,android-gridview,android-tablelayout,Android,Android Gridview,Android Tablelayout,因此,我试图在Android中创建一个GridView样式的布局,而不实际使用自定义GridView适配器,因为我不希望它滚动。我尝试过关闭滚动,但它破坏了我的布局,因为我在垂直线性布局中添加了其他元素 我的下一个实验是使用一个表格布局,然后只添加膨胀的布局作为表格单元格,但我也有一个问题。下面是我正在运行的一个测试,用于简单的概念验证: TableRow trackingActivityRow = new TableRow(getActivity()); for(int j =

因此,我试图在Android中创建一个GridView样式的布局,而不实际使用自定义GridView适配器,因为我不希望它滚动。我尝试过关闭滚动,但它破坏了我的布局,因为我在垂直线性布局中添加了其他元素

我的下一个实验是使用一个表格布局,然后只添加膨胀的布局作为表格单元格,但我也有一个问题。下面是我正在运行的一个测试,用于简单的概念验证:

TableRow trackingActivityRow = new TableRow(getActivity());
        for(int j = 0; j < trackingActivities.size(); j ++) {

            TrackingActivity trackingActivity = trackingActivities.get(j);
            View trackingActivityCell = getActivity().getLayoutInflater()
                    .inflate(R.layout.table_cell_tracking_activity, trackingActivityRow, true);
            TextView txtDescription = (TextView)trackingActivityCell.findViewById(R.id.txtDescription);
            txtDescription.setText(trackingActivity.getDescription());



        }
        tableLayout.addView(trackingActivityRow);
它似乎正确地创建了单元格的数量,但它不希望按应有的方式设置文本。此外,在为每4个TrackingActivity创建一个新行时,我遇到了一个逻辑问题。 如果任何人有任何意见,将不胜感激

/更新/ 下面是问题的图表。包含“漫游”的单元格显示正确,但其他单元格仅显示textview中本应替换的占位符文本


我基于带有listadapter的tablelayout创建了一个定制的GridView

扩展表格布局中SetAdapter方法的简化版本:

    int itemPos = -1;
    int numRows = (int) Math.ceil((double) adapter.getCount() / (double) mNumColumns);
    for (int yPos = 0; yPos < numRows; yPos++) {
        //Create new row
        TableRow tableRow = new TableRow(this.getContext());

        for (int xPos = 0; xPos < mNumColumns; xPos++) {
            itemPos++;
            View itemView = adapter.getView(itemPos, null, tableRow);
            tableRow.addView(itemView);
        }
        this.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));
    }

你是说文本视图显示不正确?如果是,以什么方式?相同内容的快照可能会有所帮助,但它不希望按原样设置文本。-什么意思。。。为每4个TrackingActivities创建新行..-您需要在for循环中为每j个4的倍数创建一行,并将该行添加到for循环中的表中。当您膨胀该布局时,最后一个参数设置为true,这意味着该布局应膨胀并添加到parenttrackingActivityRow。在这种情况下,返回的视图实际上是parenttrackingActivityRow,这意味着您总是在TableRow中查找TextView,并且仅在第一个cellfindViewById中设置文本会返回第一个视图引用。充气方法使用false。@Luksprog-我将值更改为false,但不显示单元格。如果使用false,则需要在for循环中手动添加单元格:trackingActivityRow.addViewtrackingActivityCell。