【问题标题】:How to inflate another layout inside getView() of gridview adapter in android?如何在android中gridview适配器的getView()内膨胀另一个布局?
【发布时间】:2013-07-11 20:37:52
【问题描述】:

我想创建每周日历视图,并且在每个网格项目(每天)内可能有几个活动。除此之外,我使用网格视图创建了每周日历视图,但如果有任何特定日期的活动,我想通过动态添加活动检查分贝。和图片一样。 下面是我的 getView() 代码..

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.calendar_week_gridcell, parent, false);
    }

    txtRowTitle = (TextView) row.findViewById(R.id.txtDayTitle);

    LinearLayout root = (LinearLayout) row.findViewById(R.id.linear_root);

    String dayTitle = list.get(position);
    txtRowTitle.setText(dayTitle);
    if (position == currentWeekDay - 1)
        root.setBackgroundResource(R.drawable.calheader);
    if (!activityMap.isEmpty() && activityMap.containsKey(activityDateList.get(position))) {
        TextView item = new TextView(mContext);
        item.setText(activityMap.get(activityDateList.get(position)));
        item.setBackgroundColor(Color.GREEN);
        root.addView(item);
    }

    return row;
}

}

在这里我暂时尝试动态添加文本视图,但我想在这里扩展我的自定义 activity_item 布局并将其添加到网格单元格。

【问题讨论】:

  • 我尝试将活动项绑定到网格视图单元格的列表视图,但它无法正常工作。我想在这里膨胀我的自定义 activity_item 并将其添加到网格视图单元格中。我该怎么做?
  • @blackbelt 你能告诉我如何在这里扩展我的自定义布局并将其添加到网格视图项目中以获取当天可用的活动数量。

标签: android android-layout android-gridview layout-inflater


【解决方案1】:

您的意思是您希望在“忙碌”空间正在占用的区域中添加多行?您希望它占用尽可能多的空间,还是应该可以滚动?

无论如何,看来您的方向是正确的。你使用了一个线性布局来保持“忙碌”区域,对吧?因此,只需使用 for 循环并将您希望显示的数据放入其中。

当然,因为 gridView 会回收项目,所以每次到达 getView 时都需要清空 linearLayout,但它应该仍然可以工作。

如果您希望在 for 循环中使用 layoutInflater,这也是可能的:

 subRow = inflater.inflate(R.layout.sub_row, linearLayout, true);

【讨论】:

  • 实际上,我想添加“忙碌”,例如在特定日期可用的活动数量的多个项目。那么如何多次膨胀这个自定义的activity_item布局并将其添加到根线性布局。
  • 我不确定我是否理解。您的意思不是说“忙”,而是里面有一个项目列表吗?如果是这样,这就是我已经写的答案。您还需要决定它是否应该是可滚动的,以及要显示的最大项目数。现在是一个设计问题。技术细节在设计之后......
  • 我会尝试您的解决方案并让您知道...感谢您的建议。
  • @Narendra 我正在使用类似的屏幕,如果您找到解决方案,您可以发布一些代码吗?
猜你喜欢
  • 1970-01-01
  • 2021-06-26
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多