这是设计在“预览”选项卡中的外观

android - TextView未出现在模拟器和真实设备上-LMLPHP

但是,当我在模拟器或真实设备上运行它时,有效期一直到不出现为止。

<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:weightSumlayout_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>


这是纵向的样子:

android - TextView未出现在模拟器和真实设备上-LMLPHP

和风景:

android - TextView未出现在模拟器和真实设备上-LMLPHP

07-28 01:04