Cardveiw с дизайном представления изображения - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь разработать список вида карты. В дизайне карты, высота моего изображения не регулируется автоматически в зависимости от высоты карты.Вот мое изображение зрения:

Android Screenshot

А вот мой исходный код для просмотра карты:

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cardView"
    app:cardUseCompatPadding="true"
    app:cardElevation="5dp"
    app:cardCornerRadius="4dp"
    android:layout_marginBottom="16dp">

    <RelativeLayout
        android:id="@+id/POIDetails"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/graylight">

        <ImageView
            android:id="@+id/POIPic"
            android:layout_width="76dp"
            android:contentDescription="@string/poiImageCaptureDescription"
            android:layout_height="113dp"
            android:maxWidth="10dp"
            android:src="@drawable/sample" />

        <TextView
            android:id="@+id/POIName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="7dp"
            android:layout_marginStart="10dp"
            android:textStyle="bold"
            android:textSize="15sp"
            android:layout_alignTop="@+id/POIPic"
            android:layout_toEndOf="@id/POIPic" />
        <TextView
            android:id="@+id/POICategory"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:textColor="@color/colorPrimary"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POIName"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <TextView
            android:id="@+id/POIAddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/ic_location_on_black_14dp"
            android:drawablePadding="5dp"
            android:layout_marginTop="10dp"
            android:textSize="12sp"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POICategory"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <TextView
            android:id="@+id/POICreated"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:textSize="12sp"
            android:drawableStart="@drawable/ic_event_black_14dp"
            android:drawablePadding="5dp"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POIAddress"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="22dp"
            android:layout_below="@+id/POIPic"
            android:paddingBottom="4dp"
            android:background="@color/colorPrimary">
            <LinearLayout
                android:id="@+id/latlong"
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:text="@string/latitudeText"
                    android:textStyle="bold"
                    android:layout_marginStart="5dp"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/lat"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:text="@string/longitudeText"
                    android:textStyle="bold"
                    android:layout_width="0dp"
                    android:textColor="@color/graylight"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/longti"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>
</android.support.v7.widget.CardView>

Можете ли вы помочьмне разобраться, что можно сделать, чтобы решить эту проблему, заранее спасибо?

Ответы [ 3 ]

1 голос
/ 21 марта 2019

Вот ваш макет для одного CardView. Я пытался сохранить те же идентификаторы, которые вы указали в вопросе.

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.CardView
        app:cardUseCompatPadding="true"
        app:cardElevation="5dp"
        app:cardCornerRadius="4dp"
        android:layout_marginBottom="16dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/POIDetails"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <LinearLayout
                android:id="@+id/first"
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/POIPic"
                    android:layout_width="76dp"
                    android:layout_height="113dp"
                    android:maxWidth="10dp"
                    android:src="@drawable/ic_launcher_background" />

                <LinearLayout
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <TextView
                        android:id="@+id/POIName"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="7dp"
                        android:layout_marginStart="10dp"
                        android:textStyle="bold"
                        android:textSize="15sp" />
                    <TextView
                        android:id="@+id/POICategory"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="3dp"
                        android:textColor="@color/colorPrimary"
                        android:layout_marginStart="10dp" />
                    <TextView
                        android:id="@+id/POIAddress"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:drawableStart="@drawable/ic_location_on_black_14dp"
                        android:drawablePadding="5dp"
                        android:layout_marginTop="10dp"
                        android:textSize="12sp"
                        android:layout_marginStart="10dp" />
                    <TextView
                        android:id="@+id/POICreated"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:textSize="12sp"
                        android:drawableStart="@drawable/ic_event_black_14dp"
                        android:drawablePadding="5dp"
                        android:layout_marginStart="10dp" />

                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/latlong"
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:text="@string/latitudeText"
                    android:textStyle="bold"
                    android:layout_marginStart="5dp"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/lat"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:text="@string/longitudeText"
                    android:textStyle="bold"
                    android:layout_width="0dp"
                    android:textColor="@color/graylight"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/longti"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />


            </LinearLayout>

        </LinearLayout>

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

</LinearLayout>
1 голос
/ 21 марта 2019

Измените свой код следующим образом

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cardView"
    app:cardUseCompatPadding="true"
    app:cardElevation="5dp"
    app:cardCornerRadius="4dp"
    android:layout_marginBottom="16dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

    <ImageView
        android:id="@+id/POIPic"
        android:layout_width="76dp"
        android:layout_height="match_parent"
        android:maxWidth="10dp"
        android:src="@drawable/app_bg" />


    <RelativeLayout
        android:id="@+id/POIDetails"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/gray">

        <TextView
            android:id="@+id/POIName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="7dp"
            android:layout_marginStart="10dp"
            android:textStyle="bold"
            android:textSize="15sp"
            android:layout_alignTop="@+id/POIPic"
            android:layout_toEndOf="@id/POIPic" />
        <TextView
            android:id="@+id/POICategory"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:textColor="@color/colorPrimary"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POIName"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <TextView
            android:id="@+id/POIAddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/ic_location_on_black_14dp"
            android:drawablePadding="5dp"
            android:layout_marginTop="10dp"
            android:textSize="12sp"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POICategory"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <TextView
            android:id="@+id/POICreated"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:textSize="12sp"
            android:drawableStart="@drawable/ic_event_black_14dp"
            android:drawablePadding="5dp"
            android:layout_marginStart="10dp"
            android:layout_below="@id/POIAddress"
            android:layout_alignParentEnd="true"
            android:layout_toEndOf="@+id/POIPic" />
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="22dp"
            android:layout_below="@+id/POIPic"
            android:paddingBottom="4dp"
            android:background="@color/colorPrimary">
            <LinearLayout
                android:id="@+id/latlong"
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:text="@string/latitudeText"
                    android:textStyle="bold"
                    android:layout_marginStart="5dp"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/lat"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:text="@string/longitudeText"
                    android:textStyle="bold"
                    android:layout_width="0dp"
                    android:textColor="@color/graylight"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
                <TextView
                    android:id="@+id/longti"
                    android:textColor="@color/graylight"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".70" />
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
0 голосов
/ 21 марта 2019

Насколько я понимаю, вы хотите, чтобы высота изображения (POIPic) автоматически настраивалась, чтобы избежать переполнения при правильном тексте (имя, категория, местоположение, дата создания). Я даю вам два решения:

  • Использовать Макет ограничения . Это гибкий и простой дизайн макета. Или вы можете попробовать установить Android: layout_height = "match_parent".
  • Получите высоту карты на реальном устройстве, затем настройте ее. Вы можете проверить образец здесь

Пожалуйста, дайте мне знать, если я вас неправильно поняла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...