因此,在我的程序中,我想在预定义的布局上动态生成 CardView,我打算将其放置在水平方向的 LinearLayout 内,该布局位于水平 ScrollView 内。代码中的所有内容都工作正常,除了:
cv.setRadius(Tools.convertDpToPx(context,5));
[cv 是 CardView 对象]
[Tools.convertDpToPx(context,float) 作为静态函数驻留在 Tools 中,并从 DP 返回以像素为单位的翻译值]
尝试使用cv.getRadius()来检查我的值是否已分配,结果确实如此。
有人知道为什么 setRadius() 不起作用吗?
代码的实现
CardView cv = new CardView(context);
// Set external card view wrapper(cv) properties
CardView.LayoutParams cvlp=new CardView.LayoutParams(Tools.convertDpToPx(context,155),Tools.convertDpToPx(context,200));
cvlp.leftMargin=Tools.convertDpToPx(context,10);
cv.setLayoutParams(cvlp);
cv.setBackground(new ColorDrawable(Color.parseColor("#002038")));
cv.setPreventCornerOverlap(false);
cv.setRadius(Tools.convertDpToPx(context,5));
//And more elements added to Card View Layout
cv.setId(View.generateViewId());
最佳答案
向 CardView 添加背景或背景颜色将删除圆角。
关于java - 以编程方式分配时 CardView.setRadius() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60173028/