首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CardView内部的CardView:删除额外的填充

CardView内部的CardView:删除额外的填充
EN

Stack Overflow用户
提问于 2016-02-23 19:03:25
回答 1查看 1.5K关注 0票数 0

我使用CardView的AppCompat支持库在CardView中实现了一个由CardView组成的布局。第一个布局是第一层,第二个布局位于第一层之上。在棒棒糖上一切都很好,但正如Android dev doc所说,为了在pre-L版本上创建阴影,添加了额外的填充。

以下是L版本:

和pre-L版本:

我已经尝试了很多其他帖子中的变通方法来删除这些额外的填充,但都不起作用。我可能漏掉了什么,但我不知道是什么。

这是我的布局代码(我使用appcompat-v7 r23):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="80dp"
    android:id="@+id/adapter_line_favorites"
    android:clickable="false">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        card_view:cardPreventCornerOverlap="false"
        card_view:contentPadding="0dp"
        card_view:cardCornerRadius="4dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="15dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="false"
            android:layout_alignParentRight="false"
            android:layout_alignParentEnd="false">

            <android.support.v7.widget.CardView
                xmlns:card_view="http://schemas.android.com/apk/res-auto"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                card_view:cardBackgroundColor="@color/CyanPrimaryDark"
                card_view:cardCornerRadius="4dp"
                android:id="@+id/line_layout">

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">

                    <LinearLayout
                        android:orientation="vertical"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:layout_gravity="center_horizontal">

                        <ImageView
                            android:layout_width="40dp"
                            android:layout_height="40dp"
                            android:id="@+id/line_icon"
                            android:layout_gravity="center"
                            android:layout_marginTop="15dp" />

                    </LinearLayout>

                    <ImageView
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:id="@+id/dropdown"
                        android:layout_gravity="center_vertical|right"
                        android:layout_marginRight="20dp"
                        android:focusableInTouchMode="false"
                        android:src="@drawable/ic_action_keyboard_arrow_down" />
                </FrameLayout>

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

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/inner_favorite"
                android:visibility="gone">

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

如果有人在L和pre-L版本上有很好的变通方法,我非常感兴趣!

EN

回答 1

Stack Overflow用户

发布于 2016-02-23 19:16:54

问题是您使用的是support库中的CardView。此Cardview在pre-L (Api21)上使用自己的填充/阴影机制。解决此问题的唯一方法是让适配器对pre-L设备使用不同的卡布局。

Similar question here.这里是一个例子,注意createviewholder中的"determineLayout()“方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class adapter_overview extends RecyclerView.Adapter<adapter_overview.AdapterViewHolder>{

public ArrayList<String> vehicleList = new ArrayList<>();
private View itemView;

public adapter_overview(ArrayList<String> vehicleList) {
    this.vehicleList.addAll(vehicleList.values());
}

@Override
public int getItemCount() {
    return vehicleList.size();
}

@Override
public AdapterViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    itemView = LayoutInflater
            .from(viewGroup.getContext())
            .inflate(determineLayout(), viewGroup, 

    return new AdapterViewHolder(itemView);
}

@Override
public void onBindViewHolder(AdapterViewHolder adapterViewHolder, int i) {
    //do bind stuff
    }
}

public int determineLayout(){
        if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT ){
            return R.layout.card_overview_v19;

        }else{
            return R.layout.card_overview;

    }
}

public static class AdapterViewHolder extends RecyclerView.ViewHolder{


    public AdapterViewHolder(View view) {
        super(view);

        //set up text view/etc
    }
}

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35585984

复制
相关文章
CardView
在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变,很炫很给力!同时,Google也给出了两个可以向下兼容的控件放到了V7包中,
xiangzhihong
2018/02/01
2.1K1
CardView
CardView的那点事儿
类继承关系: java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ android.support.v7.widget.CardView
小小工匠
2021/08/16
1K0
Android之CardView[通俗易懂]
CardView是View的子类,View一般使用Background设置背景色,为什么还要单独提取出一个属性让我们来设置背景色呢?
全栈程序员站长
2022/11/07
6.4K0
Android之CardView[通俗易懂]
CardView使用及属性
app:cardCornerRadius这是设置圆角大小 app:cardElevation这是设置z轴的阴影 app:cardMaxElevation这是设置z轴的最大高度值 app:cardUseCompatPadding是否使用CompatPadding app:cardPreventCornerOverlap是否使用PreventCornerOverlap app:contentPaddingLeft 设置内容的左padding app:contentPaddingTop 设置内容的上padding app:contentPaddingRight 设置内容的右padding app:contentPaddingBottom 设置内容的底padding
yechaoa
2022/06/10
6850
CardView使用及属性
CardView 简介和使用
CardView 简介 CardView 是 Google 官方发布 MD 风格卡片布局控件,开发者可以很方便的使用它将布局做成卡片效果。在使用 CardView 之前,多少应该对它有一定的了解,下面将对其实现做简单的介绍。
Java架构师必看
2022/01/29
1.3K0
CardView 简介和使用
解决CardView在5.0以下留白的问题
CardView在5.0以下显示会有一点留白,有点类似TextView默认的padding,这个时候即使设置contentPadding属性也是没有用的。 解决办法 在用的地方做一层判断,如果当前系统是5.0以下,padding设为负值,把留白撑掉。 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { holder.mCardView.setContentPadding(-10, -10, -10, -10); }
yechaoa
2022/06/10
4400
2-VVI-材料设计之CardView
零、前言 [1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].依赖impleme
张风捷特烈
2018/09/29
1.2K0
2-VVI-材料设计之CardView
CardView_cardminder是什么软件
本文介绍CardView这个控件的使用,CardView继承至FrameLayout类,是support-v7包下的一个类,使用时必须引入cardview依赖包,可在下载的sdk文件夹中找到。。。
全栈程序员站长
2022/11/07
9230
CardView_cardminder是什么软件
Android:最新版CardView的安装和使用
很多软件都使用了卡片式的布局,看上去非常美观。查了一下,大多是采用CardView这个神奇的组件实现。 翻阅大部分教程,大多数都是采用这行代码来调用cardview包
zstar
2022/06/14
9020
Android:最新版CardView的安装和使用
SwiftUI制作一个CardView展示
var heading:String = "By default, both the text stack and the spacer occupy half of the parent view"
大话swift
2019/11/06
1.1K0
SwiftUI制作一个CardView展示
计算机技术|卡片视图CardView
在使用MUI开发APP的过程中,功能的融合和美观的布局,往往能使得项目得以顺利进展。不错的设计肯定离不开MUI的各个控件。对于每个控件的熟悉,并且能个灵活的运用,使得多个控件能够自由组合,和谐的互相锲合,常常可以使得写出一个页面有事半功倍的效果。
算法与编程之美
2019/11/07
9590
计算机技术|卡片视图CardView
Android Material Design系列之RecyclerView和CardView
去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。 RecyclerView RecyclerView介绍 RecyclerView作为替代ListView使用,它更先进,更灵活,RecyclerView标准化了ViewHolder,ListView中convertView是复用的,在RecyclerView中,是把
非著名程序员
2018/02/09
2.1K0
Android Material Design系列之RecyclerView和CardView
Material Design 实战 之第四弹 —— 卡片布局
首先这里准备用CardView来填充主题内容, CardView是用于实现卡片式布局效果的重要控件,由appcompat-v7库提供。 实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉。
凌川江雪
2018/10/09
2.1K0
Material Design 实战 之第四弹 —— 卡片布局
学会使用CardView,简单实现卡片式布局效果
还记得我们一共学过了多少UI控件了吗?都掌握的怎么样啊 安卓中一些常用控件学习得差不多了,今天再来学习一个新的控件CardView,在实际开发中也有非常高的地位。 一、CardView简介 CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果。 CardView继承自Framelayout,所以FrameLayout所有属性CardView均可以直接拿来用,不过CardView还有自己独有的属性,常用属性
分享达人秀
2018/02/05
3.4K0
学会使用CardView,简单实现卡片式布局效果
点击加载更多

相似问题

如何去除"CardView“android的额外填充

20

如何删除cardview填充?

17

CardView中顶部和底部的额外填充

13

从cardview中删除额外空间

30

DrawerLayout内部的CardView

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文