ImageView не просматривается на устройстве, но в режиме предварительного просмотра отображается - PullRequest
0 голосов
/ 24 июня 2019

Я отображаю некоторые элементы в RecyclerView.В макете каждого элемента я хочу, чтобы появилась вертикальная полоса.Я создал ImageView в макете элемента.На вкладке «Предварительный просмотр» отображается значок «ОК», но на устройстве его нет.

Я видел этот вопрос, похожий на мой, но все, что с этим работает.

Это макет (устройство тестирования - Samsung):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainrl">

<ImageView
    android:layout_width="3dp"
    android:layout_height="match_parent"
    android:background="@color/backcolor"
    android:layout_marginStart="50dp"
    android:id="@+id/verticalbar"/>



<android.support.v7.widget.CardView
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:id="@+id/daycv"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="20dp"
    android:layout_marginTop="10dp"
    card_view:cardCornerRadius="30dp"
    card_view:cardPreventCornerOverlap="false"
    card_view:cardBackgroundColor="@color/backcolor">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/day"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dp"
            android:textColor="@color/white"
            android:textSize="17sp"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@+id/day"
            android:background="@color/white"
            android:id="@+id/separador"
            android:layout_marginStart="3dp"
            android:layout_marginEnd="3dp"
            android:layout_centerVertical="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/month"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dp"
            android:layout_below="@+id/separador"
            android:textColor="@color/white"/>
    </RelativeLayout>
</android.support.v7.widget.CardView>

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:layout_toEndOf="@+id/daycv"
    android:layout_alignTop="@+id/daycv"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:id="@+id/contentcv">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rl">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/image"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:alpha="150"
            android:background="@color/gris">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/origen"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_marginStart="10dp"/>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/flecha"
                android:layout_toEndOf="@+id/origen"
                android:layout_centerVertical="true"
                android:layout_marginStart="10dp"
                android:background="@android:drawable/ic_media_ff"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/destino"
                android:layout_toEndOf="@+id/flecha"
                android:layout_marginStart="10dp"
                android:layout_centerVertical="true"/>


        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:alpha="150"
            android:background="@color/gris">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:id="@+id/voidimage"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fechasalida"
                android:layout_above="@+id/voidimage"
                android:layout_alignParentStart="true"
                android:layout_marginStart="10dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fechallegada"
                android:layout_alignStart="@+id/fechasalida"
                android:layout_below="@+id/voidimage"
                android:layout_marginBottom="10dp"/>

        </RelativeLayout>


    </RelativeLayout>
</android.support.v7.widget.CardView>

</RelativeLayout>

Почему мой ImageView не виден на устройстве?

Спасибо.

РЕДАКТИРОВАТЬ:

Изображение:

Image here

РЕДАКТИРОВАТЬ 2:

Я изменил свой макет на это:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainrl">



<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/cvrl">

    <!--<android.support.v7.widget.CardView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:id="@+id/daycv"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="20dp"
        android:layout_marginTop="10dp"
        card_view:cardCornerRadius="30dp"
        card_view:cardPreventCornerOverlap="false"
        card_view:cardBackgroundColor="@color/backcolor">-->

    <android.support.v7.widget.CardView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:id="@+id/daycv"
        android:layout_centerHorizontal="true"
        android:layout_marginStart="20dp"
        android:layout_marginTop="10dp"
        card_view:cardCornerRadius="30dp"
        card_view:cardPreventCornerOverlap="false"
        card_view:cardBackgroundColor="@color/backcolor">



        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/day"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:textColor="@color/white"
                android:textSize="17sp"/>

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_below="@+id/day"
                android:background="@color/white"
                android:id="@+id/separador"
                android:layout_marginStart="3dp"
                android:layout_marginEnd="3dp"
                android:layout_centerVertical="true"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/month"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:layout_below="@+id/separador"
                android:textColor="@color/white"/>
        </RelativeLayout>
    </android.support.v7.widget.CardView>

    <ImageView
        android:layout_width="3dp"
        android:layout_height="wrap_content" <---- Changing this affects how the vertical line sees. 
        android:src="@color/backcolor"
        android:layout_marginStart="40dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:id="@+id/verticalbar"/>


</RelativeLayout>





<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:layout_toEndOf="@+id/cvrl"
    android:layout_alignTop="@+id/cvrl"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:id="@+id/contentcv">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rl">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/image"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:alpha="150"
            android:background="@color/gris">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/origen"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_marginStart="10dp"/>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/flecha"
                android:layout_toEndOf="@+id/origen"
                android:layout_centerVertical="true"
                android:layout_marginStart="10dp"
                android:background="@android:drawable/ic_media_ff"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/destino"
                android:layout_toEndOf="@+id/flecha"
                android:layout_marginStart="10dp"
                android:layout_centerVertical="true"/>


        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:alpha="150"
            android:background="@color/gris">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:id="@+id/voidimage"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fechasalida"
                android:layout_above="@+id/voidimage"
                android:layout_alignParentStart="true"
                android:layout_marginStart="10dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fechallegada"
                android:layout_alignStart="@+id/fechasalida"
                android:layout_below="@+id/voidimage"
                android:layout_marginBottom="10dp"/>

        </RelativeLayout>


    </RelativeLayout>
</android.support.v7.widget.CardView>

</RelativeLayout>

Если я добавлю height: match_parent, будет видна только часть строки.но, если я установил случайное число (например, 300 dp), строка будет показана ...

Ответы [ 3 ]

0 голосов
/ 24 июня 2019

Поработав некоторое время и не зная точно, почему он не работал раньше, мне удается заставить его работать следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainrl">



<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/cvrl"
    android:layout_alignBottom="@+id/rl2"
    android:layout_alignParentTop="true">


    <android.support.v7.widget.CardView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:id="@+id/daycv"
        android:layout_centerHorizontal="true"
        android:layout_marginStart="20dp"
        android:layout_marginTop="10dp"
        card_view:cardCornerRadius="30dp"
        card_view:cardPreventCornerOverlap="false"
        card_view:cardBackgroundColor="@color/backcolor">



        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/day"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:textColor="@color/white"
                android:textSize="17sp"/>

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_below="@+id/day"
                android:background="@color/white"
                android:id="@+id/separador"
                android:layout_marginStart="3dp"
                android:layout_marginEnd="3dp"
                android:layout_centerVertical="true"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/month"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:layout_below="@+id/separador"
                android:textColor="@color/white"/>
        </RelativeLayout>
    </android.support.v7.widget.CardView>

    <ImageView
        android:layout_width="3dp"
        android:layout_height="match_parent"
        android:src="@color/backcolor"
        android:layout_marginStart="40dp"
        android:id="@+id/verticalbar"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"/>

</RelativeLayout>



<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/rl2"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@id/cvrl"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:id="@+id/contentcv">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rl">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:id="@+id/image"/>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:alpha="150"
                android:background="@color/gris">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/origen"
                    android:layout_alignParentStart="true"
                    android:layout_centerVertical="true"
                    android:layout_marginStart="10dp"/>

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/flecha"
                    android:layout_toEndOf="@+id/origen"
                    android:layout_centerVertical="true"
                    android:layout_marginStart="10dp"
                    android:background="@android:drawable/ic_media_ff"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/destino"
                    android:layout_toEndOf="@+id/flecha"
                    android:layout_marginStart="10dp"
                    android:layout_centerVertical="true"/>


            </RelativeLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_alignParentBottom="true"
                android:alpha="150"
                android:background="@color/gris">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:id="@+id/voidimage"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/fechasalida"
                    android:layout_above="@+id/voidimage"
                    android:layout_alignParentStart="true"
                    android:layout_marginStart="10dp"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/fechallegada"
                    android:layout_alignStart="@+id/fechasalida"
                    android:layout_below="@+id/voidimage"
                    android:layout_marginBottom="10dp"/>

            </RelativeLayout>


        </RelativeLayout>
    </android.support.v7.widget.CardView>
</RelativeLayout>



</RelativeLayout>
0 голосов
/ 24 июня 2019

Относительная высота вашей матери - wrap_content

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainrl">

изменить на

android:layout_height="match_parent"

И если вы просто хотите отобразить вертикальную линию, используйте View с фоном вместо ImageView

0 голосов
/ 24 июня 2019

Кажется, вы используете ImageView неправильно, я вижу, что вы пытаетесь установить источник, используя android:background prop, но правильный способ установить ресурс - это использовать prop android:src,

Например

<ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/flecha"
                android:layout_toEndOf="@+id/origen"
                android:layout_centerVertical="true"
                android:layout_marginStart="10dp"
                android:src="@mipmap/ic_media_ff"/>
...