预先披露,这是一个学校项目。
对于RecyclerView内部的CardView列表,我遇到了一个有点令人困惑的布局问题,即5.0之间卡片之间的间距不存在,而4.4则没问题。这是两个要展示的截图。
Android 4.4(在设备上,Galaxy S4)
Android 5.0.1(在设备上,Nexus 4)
我可以在5.x版本中看到卡角,所以卡片就在那里。我有一种感觉这与运行5.x所需的某些XML属性有关,支持库在4.x上自动伪造,但谷歌搜索失败了。这是相关的XML:
片段布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
tools:context="com.hinodesoftworks.kanagt.HiraganaListFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/hira_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</FrameLayout>
卡片布局
<?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_height="match_parent"
android:layout_width="match_parent"
card_view:cardCornerRadius="4dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/kana_card_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="46sp"
android:text="あ"/>
<TextView
android:id="@+id/kana_card_roma"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/kana_card_display"
android:layout_toEndOf="@id/kana_card_display"
android:text="a"
/>
<TextView
android:id="@+id/kana_card_info1_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/kana_card_display"
android:layout_toEndOf="@id/kana_card_display"
android:layout_below="@id/kana_card_roma"
android:text="INFO 1"/>
<TextView
android:id="@+id/kana_card_info2_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/kana_card_display"
android:layout_toEndOf="@id/kana_card_display"
android:layout_below="@id/kana_card_info1_display"
android:text="INFO 2"/>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/kana_card_info2_display">
<ImageView
android:id="@+id/kana_card_diagram"
android:layout_width="match_parent"
android:layout_height="100dp"
android:scaleType="fitStart"
android:adjustViewBounds="true"/>
</HorizontalScrollView>
</RelativeLayout>
</android.support.v7.widget.CardView>
我真的希望这是一个简单的XML修复的愚蠢错误;支持库版本正常工作让我对此抱有希望。
答案 0 :(得分:4)
如果要在5.0上填充,请遵循与先前平台相同的规则,将此属性添加到CardView
XML元素
app:cardUseCompatPadding="true"
在Lollipop上,可以在视图边界之外绘制阴影。在Kitkat和更低的额外空间必须保留阴影。这就是为什么在Lollipop上必须明确设置间距。