java - CardView 在不同的屏幕密度下无法正确显示?
问题描述
我有一个带有 Cardviews 的 ViewPager,cardviews 可以在某些设备上正确显示,但在大多数情况下显示很薄。ViewPager 位于片段中。
我正在使用 LinearLayout 来定义 CardView,我尝试了相对但我有同样的问题。
https://ibb.co/kyNF5Yz “来自不同设备的示例”
Item.xml https://gist.github.com/Bryan9797/1eda5e7d02d1a12140115a539f164e3e
Fragment_bateria.xml https://gist.github.com/Bryan9797/b5d7b16a6d0599b7fd7f593226a4523d
activity_main.xml https://gist.github.com/Bryan9797/632461d73286afa5493167048b8e19c0
我希望在不同的设备上正确显示 Cardview。
解决方案
您可以使用 sdp 库为所有设备提供响应式 XML。
https://github.com/intuit/sdp
您可以在 gradle 中安装此依赖项,并使用此 sdp 而不是 dp。您可以在 xml 布局中设置此 sdp 并将高度设置为 wrap_content,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center_vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_5sdp"
app:cardCornerRadius="@dimen/_20sdp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="@dimen/_350sdp"
android:scaleType="centerCrop"
android:src="@color/colorAccent" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/image"
android:layout_marginLeft="@dimen/_15sdp"
android:layout_marginTop="10dp"
android:text="Escritorio ejecutivo"
android:textColor="#262626"
android:textSize="@dimen/_20ssp" />
<TextView
android:id="@+id/desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_marginLeft="@dimen/_15sdp"
android:layout_marginTop="@dimen/_3sdp"
android:layout_marginRight="@dimen/_15sdp"
android:drawablePadding="@dimen/_10sdp"
android:ellipsize="end"
android:maxLines="4"
android:text="Escritorio ejecutivo"
android:textSize="@dimen/_15ssp" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
推荐阅读
- python - re.search() 不断返回 None 并且找不到错误
- r - 有没有办法在 R 中生成相关的二项式、高斯和泊松变量?
- acumatica - Acumatica - 复制粘贴功能
- c# - Visual Studio - 生成后事件
- firebase - Flutter + Firebase 如何在使用电子邮件和密码创建帐户时添加 DisplayName
- c# - abp.io Hangfire 无法访问已释放的上下文实例
- python - 腌制 Keras Regressor 模型错误:无法腌制 _thread.RLock 对象
- php - 如何从 Leaflet / OSM 中提取 POI
- java - ChromeDriver 默认下载目录在 ChromeDriver v89,90 中不起作用
- ethereum - 使用 if 语句时如何计算 gas 使用量