我有一个扩展CardView的自定义控件.我将它添加到线性布局,以便我可以创建一个卡网格.我没有使用ListView或RecyclerView.
我想在线性布局中设置卡之间的间隙,所以我定义了一个边距.
卡片布局使用黑暗主题.我的应用程序使用默认材质主题(黑暗).我正在测试Pixel C,Android 6.0.1.
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
card_view:cardUseCompatPadding="true"
card_view:cardPreventCornerOverlap="false"
card_view:cardElevation="5dp"
style="@style/CardView.Dark">
我将它们添加到列表视图中:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT);
LinearLayout newLinearLayout = new LinearLayout(this);
newLinearLayout.setLayoutParams(layoutParams);
newLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
mainLayoutContainer.addView(newLinearLayout);
newLinearLayout.addView(myCardLayoutObj);
使用CardView布局的类实际上扩展了CardView本身,例如
public class MyCustomWidgetextends CardView{
public MyCustomWidget(Context context) {
super(context);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.my_card_view_layout, this);
}
我看到的就是这个.卡内容部分看起来很好..深色.但是CardView周围的边距/间隙是白色的.如何让它变得透明,为什么暗卡主题表现如此?此外,在这样的黑暗主题上阴影会是什么样子?
解决方法:
所以我有一个布局文件,其中包括< CardView>如上所述.我的自定义类膨胀了这个布局扩展了CardView.所以,我在CardView中有一个CardView. “外部”卡片视图,即我的自定义类扩展的视图,从未设置过主题,因此它使用默认的“light”主题.
因为我是以编程方式创建这个小部件,所以我认为我需要扩展CardView.这是错的.
之前:
public class MyCustomWidget extends CardView
后:
public class MyCustomWidget extends LinearLayout{
public MyCustomWidget(Context context) {
super(context);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.my_card_view_layout, this);
标签:android,layout,android-cardview
来源: https://codeday.me/bug/20190628/1312471.html