您好我只想以编程方式设置cardview的高程,但似乎不起作用,这是我的代码:
CardView cardView = new CardView(this);
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
cardView.setLayoutParams(params);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linear);
cardView.setCardBackgroundColor(Color.WHITE);
cardView.setCardElevation(1000);
linearLayout.addView(cardView);
即使setCardEleveation设置为1000,也没有对cardview进行任何更改,这有什么不对? 有一些相关的问题,但我无法得到答案。
答案 0 :(得分:0)
使用cardview.setMaxCardElevation(8);
代替
答案 1 :(得分:0)
从高程仅取决于视图阴影。当高程约为2
,10
时,可能会显示20
而不是更多。当你设置像1000
这样的东西时,由于距离很远,阴影变得几乎看不见(就像在现实世界中一样:))。
尝试设置较少的高程。
答案 2 :(得分:0)
好吧,我有一个棘手的问题,我的Cardview把它的父母包起来,所以没有空间可以展示它的影子。最后我给Cardview增加了保证金,现在它有效!!
答案 3 :(得分:0)
最小api为15,最大值为21
CardView cardView = new CardView(this);
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,200);
cardView.setLayoutParams(params);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linear);
cardView.setCardBackgroundColor(Color.WHITE);
cardView.setCardElevation(20);
linearLayout.addView(cardView);
答案 4 :(得分:-1)
XML属性“ cardElevation”将为您实现这一目标。由于《材料设计指南》指出CardView高程只能为8dp,因此您可以一劳永逸地在XML文件中进行设置。