标签: android-cardview

使用卡片视图时无法获得精确的圆形

我在android材料设计中使用卡片视图浮动动作按钮.我正在使用以下代码获取圆圈

<android.support.v7.widget.CardView
    android:id="@+id/fab"
    android:layout_width="38dp"
    android:layout_height="38dp"
    android:layout_marginBottom="10dp"
    android:layout_marginRight="10dp"
    card_view:background="@color/blue"
    card_view:cardCornerRadius="19dp"
    card_view:cardPreventCornerOverlap = "false"
    card_view:cardElevation="6dp" >
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

我将拐角半径设置为宽度的一半.但我仍然无法得到圆形.在此输入图像描述

android material-design android-cardview

35
推荐指数
8
解决办法
3万
查看次数

将CardView置于RecyclerView中,只有一个元素

我正在使用包含带有TextView和ImageView的CardView的RecyclerView(每张卡代表一个城市).我在每张卡片上都有一个onClickListener,可以将我带到城市的博物馆列表中.(RecyclerView由ArrayList填充).该列表是由垂直滚动的同一Cardview组成的RecyclerView.

当一个城市只有一个博物馆时,如何在屏幕中央显示独特的CardView?

这是活动xml:

    <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.bebbo203.mymuseum.MuseumActivity">

    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/recyclerViewMuseum"
        android:scrollbars="vertical"
        android:scrollIndicators="none"
        android:gravity="center_horizontal"
        />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是RecyclerView xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:baselineAligned="false"
              xmlns:card_view="http://schemas.android.com/apk/res-auto">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:id="@+id/cardView"
        card_view:cardCornerRadius="2dp"
        card_view:cardUseCompatPadding="true"
        android:gravity="center_horizontal"
        android:animateLayoutChanges="true"
        >
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:id="@+id/imageViewList"
                android:layout_gravity="center_horizontal|top"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"/>

            <TextView
                android:id="@+id/textViewList"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:textSize="40sp"
                android:textIsSelectable="false"
                android:textAlignment="center"
                android:gravity="fill"
                android:textStyle="bold"
                android:layout_weight="1"
                android:layout_gravity="center_horizontal|top"/>

        </FrameLayout>

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


</RelativeLayout>`
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

所以这就是MainActivity.城市列表.一切都很好. 在此输入图像描述

当我点击只有一个博物馆的Parigi时,我想在屏幕中央显示单个卡片视图

在此输入图像描述

(如果有可能我想从屏幕中心开始,而不是从顶部开始.如果我打开活动时中央卡片视图始终位于中心.例如,在中心翻译NationalGallery另一个的顺序)

在此输入图像描述

android android-cardview android-recyclerview

35
推荐指数
1
解决办法
1万
查看次数

RecyclerView中图像的奇怪行为

我使用android.support.v7.widget.RecyclerView来显示包含文本的简单项目,在某些情况下还显示图像.基本上我从这里按照教程https://developer.android.com/training/material/lists-cards.html,只是将mDataset的类型从String []更改为JSONArray和ViewHolder的xml.我的RecyclerView位于一个简单的片段中:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

<!-- A RecyclerView with some commonly used attributes -->
<android.support.v7.widget.RecyclerView
    android:id="@+id/my_hopps_recycler_view"
    android:scrollbars="vertical"
    android:layout_centerInParent="true"
    android:layout_width="200dp"
    android:layout_height="wrap_content"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

在这个片段中,我将从Web服务器加载所有信息.收到信息后,我初始化RecyclerView中的项目.我使用了一个LinearLayoutManager,它在我的Fragment的onCreate方法中设置.添加适配器后,我在RecyclerView上调用setHasFixedSize(true)方法.我的Adapter类看起来像这样:

import android.graphics.BitmapFactory;
import android.support.v7.widget.RecyclerView;
import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import org.apache.commons.lang3.StringEscapeUtils;
import org.json.JSONArray;
import org.json.JSONObject;

import saruul.julian.MyFragment;
import saruul.julian.R;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

/**
* Fragment holding the RecyclerView.
*/
private MyFragment …
Run Code Online (Sandbox Code Playgroud)

arrays android imageview android-cardview android-recyclerview

34
推荐指数
2
解决办法
4万
查看次数

Card_view材料设计

我正在尝试使用card_view.但它一直给出错误.

错误:(13)在'com.google.example.test_app'包中找不到属性''cardCornerRadius'的资源标识符

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="#610B0B"
    tools:context=".MyActivity"
    android:id="@+id/myactivity ">
    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:background="#fff"
        card_view:cardCornerRadius="4dp">
        <TextView
        android:id="@+id/my_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/next"
        android:background="#fff"
        android:elevation="5dp" />
    </android.support.v7.widget.CardView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

android android-layout android-cardview android-5.0-lollipop

33
推荐指数
3
解决办法
3万
查看次数

RecyclerView中的CardView具有额外的利润

我在RecyclerView中使用CardView作为元素.这样做时,android会自动在cardView和屏幕之间以及不同的cardView之间生成边距.

<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/galleryCardBGColor"
app:cardCornerRadius="2dp" >

<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />
Run Code Online (Sandbox Code Playgroud)

我按照链接中的说明将它们集成到我的项目中: using-recyclerview-and-cardview-in-eclipse-adt

我之前使用过linearlayout作为list元素:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
Run Code Online (Sandbox Code Playgroud)

这工作得非常好,列表元素之间没有任何边距.我现在刚刚在cardView中放置了线性布局,这导致了额外的边距.

原因是我想为这些元素提供精确的边距,而我现在提供的任何边距都会被添加到这个预先存在的边距.我已经尝试向cardView元素提供零/负填充/边距,但这些都不起作用.

任何想法,我可以删除这些边距或以其他方式确切地知道添加了多少保证金.

android eclipse-adt android-cardview android-recyclerview

33
推荐指数
5
解决办法
4万
查看次数

Android CardView删除填充

如何在下面的布局中摆脱这个奇怪的填充:

在此输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/ColorPrimaryDark">

    <android.support.v7.widget.CardView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="10dp"
        android:layout_marginTop="9dp"
        android:layout_marginLeft="9dp"
        android:layout_marginRight="9dp"
        card_view:cardElevation="0.01dp"
        android:layout_marginBottom="0dp"
        card_view:cardPreventCornerOverlap="true"
        card_view:cardUseCompatPadding="true"
        card_view:cardBackgroundColor="@color/ColorPrimary">

        <RelativeLayout
            android:id="@+id/top_layout"
            android:layout_width="fill_parent"
            android:layout_height="180dp"
            android:background="@color/ColorPrimary">

            <ImageView
                android:id="@+id/img_thumbnail"
                android:layout_width="fill_parent"
                android:layout_height="180dp"
                android:scaleType="fitXY"
                android:background="@drawable/korabltest"/>

            <RelativeLayout
                android:id="@+id/inner_layout"
                android:layout_width="fill_parent"
                android:layout_height="36dp"
                android:background="#5c1b1b1b"
                android:layout_gravity="bottom"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true">

                <TextView
                    android:id="@+id/tv_nature"
                    android:layout_width="wrap_content"
                    android:layout_height="50dp"
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:layout_gravity="bottom"
                    android:gravity="center_vertical"
                    android:alpha="0.8"
                    android:textColor="#fff"
                    android:textSize="18sp"
                    android:text="Lexington"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true" />

                <TextView
                    android:id="@+id/tv_nature_1"
                    android:layout_width="wrap_content"
                    android:layout_height="50dp"
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:layout_gravity="bottom"
                    android:gravity="center_vertical"
                    android:alpha="0.8"
                    android:textColor="#fff"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    android:text="527 (31%)"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true" />
            </RelativeLayout>
        </RelativeLayout>
    </android.support.v7.widget.CardView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-cardview

33
推荐指数
3
解决办法
2万
查看次数

Cardview阴影没有出现在棒棒糖设备中?

我在我的Android应用程序中使用cardview.然而阴影没有显示出来.这是xml布局

默认选项菜单阴影也未显示.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ECEDF0"
    android:orientation="vertical" >

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clipChildren="false"
        card_view:cardBackgroundColor="@color/white"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="14dp"
        card_view:cardUseCompatPadding="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:text="Google Play" />
    </android.support.v7.widget.CardView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

请参阅附件

android android-layout android-cardview android-5.0-lollipop

32
推荐指数
3
解决办法
3万
查看次数

CardView中不必要的填充?

我在我的应用程序中实现了CardView,一切正常,但如果我将半径放入卡片,图像周围会有一点填充.

它看起来像这样: screenshot_2014-12-27-20-31-55

但是在android文档本文中,图像采用了整个cardview,所以你可以帮助我实现这一目标.

我的布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:card_view="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          android:padding="8dp">

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    card_view:cardBackgroundColor="@android:color/white"
    card_view:cardCornerRadius="4dp">

    <ImageView
        android:id="@+id/media_image_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:alpha="0.8"
            android:background="?attr/colorPrimary"
            android:padding="4dp">

            <TextView
                android:id="@+id/media_download"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:textSize="11sp"/>

            <TextView
                android:id="@+id/category_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:textColor="@color/primary_text"
                android:textSize="12sp"/>

        </RelativeLayout>

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

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

注意:屏幕截图是在棒棒糖前设备上捕获的.

android android-layout android-cardview android-5.0-lollipop

32
推荐指数
1
解决办法
2万
查看次数

如何在AndroidX中的布局XML中添加cardview

如何在AndroidX中的布局XML中添加cardview

升级到AndroidX之后

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp">
Run Code Online (Sandbox Code Playgroud)

给出一个错误

找不到以下类:-android.support.v7.widget.CardView(修复构建路径,编辑XML,创建类)

dependencies {

    implementation 'androidx.appcompat:appcompat:1.0.0'

    implementation 'androidx.cardview:cardview:1.0.0'
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在AndroidX下的xml中使用CardView

谢谢

android android-appcompat android-cardview material-components-android androidx

32
推荐指数
6
解决办法
4万
查看次数

Cardview - 卡周围的白色边框

我正在使用cardview作为我正在编写的自定义视图的根.我使用的是v7支持库.我的XML看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
        android:layout_marginRight="6dp"
        card_view:cardElevation="0dp">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

        <!-- some other views -->
    </LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

我的问题是我的卡片视图周围有一个白色边框.它看起来像是指示高度,因为它在右侧较厚.我试过调整,cardElevationMaxCardElevation在我的XML中这样: card_view:cardElevation="0dp"

并在我的自定义视图中的代码中扩展CardView并使用此布局:

setCardElevation(0);
setMaxCardElevation(0);
Run Code Online (Sandbox Code Playgroud)

但白色边界仍然存在.我不知道如何摆脱它.如果有人对此为何发生任何意见或建议如何删除白色边框,我们将不胜感激.非常感谢.

android android-cardview

31
推荐指数
1
解决办法
3万
查看次数