花京院 2016-01-26 06:12 采纳率: 0%
浏览 4933

GridLayout动态添加子组件.layout_width和layout_height不起做用.

android:id="@+id/recycler_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/dimen_2X"
android:paddingRight="@dimen/dimen_2X"
android:columnCount="5"
>

             gridLayout.post(new Runnable() {
        @Override
        public void run() {
            int width = (gridLayout.getWidth() - 2 * gridLayout.getPaddingLeft()) / COLUMNCOUNT;
            int height = (int) (width / 0.75f);
            MyLogger.jLog().i(width + ":" + height);
            for (int i = 0; i < FAVORITCOUNT; i++) {
                TextView colorCardView = new TextView(getApplicationContext());
                colorCardView.setBackgroundColor(Color.WHITE );
                GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams();
                layoutParams.width = width;
                layoutParams.height = height;
                colorCardView.setLayoutParams(layoutParams);
                gridLayout.addView(colorCardView);
            }
        }
    });
            需求是在Gridlayout中显示25个子组件.每行5个.每个组件宽高比是3:4.
            在log中已经能获取到宽高98,130.
            但实际显示中,子组件的宽为父布局宽,高为宽的4/3.所有子组件重叠在一起.
            感觉params.width和height完全没起作用.
  • 写回答

2条回答

  • 小坏楠楠 2016-01-26 12:28
    关注

    可以使用 以下方式:
    1.gridview 设置 columsNum
    2.自定义子View(在onMeasure处设置其高为getMeasuredWidth的4/3)
    3.为gridview编写adapter动态加载这些子view

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?