ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 黑暗主题CardViews周围的白色边框

2019-06-28 05:10:55  阅读:626  来源: 互联网

标签:android layout android-cardview


我有一个扩展CardView的自定义控件.我将它添加到线性布局,以便我可以创建一个卡网格.我没有使用ListView或RecyclerView.

我想在线性布局中设置卡之间的间隙,所以我定义了一个边距.

卡片布局使用黑暗主题.我的应用程序使用默认材质主题(黑暗).我正在测试Pixel C,Android 6.0.1.

<android.support.v7.widget.CardView
        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">
<!-- content here -->
</android.support.v7.widget.CardView>

我将它们添加到列表视图中:

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周围的边距/间隙是白色的.如何让它变得透明,为什么暗卡主题表现如此?此外,在这样的黑暗主题上阴影会是什么样子?

enter image description here

解决方法:

所以我有一个布局文件,其中包括< 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有