这是设计在“预览”选项卡中的外观
但是,当我在模拟器或真实设备上运行它时,有效期一直到不出现为止。
<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="wrap_content">
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="@dimen/card_margin"
android:elevation="3dp"
card_view:cardCornerRadius="@dimen/sell_item_radius">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:background="@android:color/holo_blue_light">
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/validUntil"
android:textColor="@color/colorPrimaryDark" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/date"
android:text="date"
android:textColor="@color/colorPrimaryDark" />
</RelativeLayout>
<ImageView
android:id="@+id/itemImage"
android:layout_width="match_parent"
android:layout_height="@dimen/sell_item_image_height"
android:clickable="true"
android:scaleType="fitXY"
android:src="@drawable/ic_camera" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/itemImage"
android:layout_alignParentRight="true"
android:src="@drawable/ic_favourite" />
<TextView
android:id="@+id/imageCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:text="@string/imageCount"
android:textColor="@color/blue" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/itemImage"
android:layout_marginTop="-3dp"
android:paddingLeft="@dimen/sell_item_image_padding"
android:paddingTop="@dimen/sell_item_image_padding"
android:paddingRight="@dimen/sell_item_image_padding"
android:text="@string/title"
android:textColor="@color/blue"
android:textSize="@dimen/sell_item_title" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_marginRight="10dp"
android:paddingLeft="@dimen/sell_item_image_padding"
android:paddingRight="@dimen/sell_item_image_padding"
android:text="@string/price" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
谢谢
最佳答案
之所以看不到某些视图,是因为所有视图的宽度和高度均为wrap_content
-因此,您创建了一个布局,可以根据视图的内容进行扩展(如果您要添加200 dp, 600 dp图片,并将宽度和高度设置为wrap_content
,这将是您的视图大小),即使在预览时,您也可以看到-视图彼此重叠。
因此,您可以在视图中使用固定大小,但是这样做会进入危险区域-您的布局不会对所有屏幕尺寸都做出响应,这是因为不同的手机具有不同的屏幕尺寸,并且一部手机看起来不错在其他手机上看起来不会很好。
当然,您可以通过为每种屏幕尺寸创建一个布局来解决此问题,但这需要大量工作。
您还可以使用android:weightSum
和layout_weight
定义相对布局
但是还有一个更好的选择:
您可以使用ConstraintLayout来实现响应所有屏幕尺寸的单一布局,其所有视图层次结构都是平坦的(无嵌套视图组),并且使用起来真的很简单。
这是一个布局示例,它看起来像您要使用constraintLayout:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="TextView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView12"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView13"
android:layout_width="0dp"
android:layout_height="15dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="TextView"
app:layout_constraintBottom_toTopOf="@+id/textView12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="TextView"
app:layout_constraintStart_toEndOf="@+id/textView10"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView14"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="heart"
app:layout_constraintBottom_toTopOf="@+id/textView13"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/textView8" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:scaleType="fitXY"
app:layout_constraintBottom_toTopOf="@+id/textView14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView8"
tools:src="@tools:sample/avatars[11]" />
</androidx.constraintlayout.widget.ConstraintLayout>
这是纵向的样子:
和风景: