如何以编程方式设置CardView的高程?

时间:2017-08-15 08:34:03

标签: android android-cardview

您好我只想以编程方式设置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进行任何更改,这有什么不对? 有一些相关的问题,但我无法得到答案。

5 个答案:

答案 0 :(得分:0)

使用cardview.setMaxCardElevation(8);代替

答案 1 :(得分:0)

从高程仅取决于视图阴影。当高程约为210时,可能会显示20而不是更多。当你设置像1000这样的东西时,由于距离很远,阴影变得几乎看不见(就像在现实世界中一样:))。

尝试设置较少的高程。

答案 2 :(得分:0)

好吧,我有一个棘手的问题,我的Cardview把它的父母包起来,所以没有空间可以展示它的影子。最后我给Cardview增加了保证金,现在它有效!!

答案 3 :(得分:0)

最小api为15,最大值为21

Image of the code

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文件中进行设置。