簡體   English   中英

如何以編程方式設置 CardView 的高度?

[英]How to set CardView's elevation programmatically?

您好,我只想以編程方式設置 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 也沒有變化,有什么問題? 有一些相關的問題,但我無法得到答案。

好的,我遇到了一個棘手的問題,我的 Cardview 將它的 Parent 包裹起來,所以沒有可用的空間來顯示它的陰影。 最后我在 Cardview 中添加了邊距,現在它起作用了!!

使用cardview.setMaxCardElevation(8); 相反

從海拔僅取決於視圖陰影。 這是很好時高程約所示210 ,可以是20而不是更。 當您設置1000東西時,由於距離很遠,陰影幾乎不可見(就像在現實世界中一樣 :))。

嘗試設置較低的高度。

最小 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);

但是,XML 屬性“cardElevation”將為您實現這一點。 由於 Material Design Guideline 規定 CardView 高程只能為 8dp,因此您也可以在 XML 文件中一勞永逸地設置它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM