gpt4 book ai didi

android - 通过 XML 定义和以编程方式定义时卡片 View 的显示方式不同

转载 作者:行者123 更新时间:2023-11-29 17:38:31 25 4
gpt4 key购买 nike

我在使用 Android 的新 Card View 时遇到了一个非常令人不安的问题。我在我的 LinearLayout 中用 XML 定义了一张卡片,并以编程方式定义了另一张卡片。

这就是我用 XML 定义卡片 View 的方式。

<android.support.v7.widget.CardView
android:id="@+id/incoming_call_status_card2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_horizontal_margin">

<include layout="@layout/common_cards_switch_summery"/>

</android.support.v7.widget.CardView>

这就是我在 Java 中的做法。

LinearLayout layout = (LinearLayout) view.findViewById(R.id.main_layout);
CardView card = new CardView(getActivity());
View.inflate(getActivity(), R.layout.common_cards_switch_summery, card);
layout.addView(card);

如您所见,这两张卡片基本相同,没有任何修改,我在这两种情况下所做的唯一一件事就是使用 XML 中定义的布局(R.layout.common_cards_switch_summery ).

但我得到的最终结果很奇怪。

可以清楚地看到,在第一张卡片中,即用 XML 定义的卡片,有一个显示某种高度的阴影,但在我用 Java 定义的第二张卡片中根本没有显示任何阴影。

当我在 XML 中设置 card_view:cardElevation="5dp" 时,高度会正确显示。但是当我在 Java 中调用 card.setCardElevation(5); 时,根本没有提升。

有人可以解释背后发生的事情吗?有没有办法让我在以编程方式定义它时获得与在 XML 中获得的结果相同的结果?

PS - 在 Lollipop (5.0.1) 上测试

我在 Java 中导入相同的类,即
import android.support.v7.widget.CardView;

最佳答案

在我看来,阴影显示在您的第二个cardView 下——只是它被父 View 剪切了。第二张卡片没有定义marginBottom,这是两者的区别。添加边距或放大父级并查看结果!

关于android - 通过 XML 定义和以编程方式定义时卡片 View 的显示方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29632135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com