我有一个具有Cardviews的ViewPager,cardviews在某些设备上可以正确显示,但大多数情况下只能显示很薄。 ViewPager在一个片段中。
我正在使用LinearLayout来CardView定义,我尝试了Relative,但是我遇到了同样的问题。
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。
答案 0 :(得分:0)
您可以将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>