У меня есть проблема RelativeLayout в разных устройствах - PullRequest
1 голос
/ 12 января 2020

ниже приведен мой макет ячейки recyclerView xml макет и снимки экрана того, как он показывает, что он отображается выровненным на некоторых устройствах, но показывает на других устройствах не выровненный, а список list_consultation_section_two не показан, а список list_consultation_section_three центрирован без какой-либо причины, почему это происходит?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/list_certificate_item_parent"
    android:layout_width="match_parent"
    android:layout_height="@dimen/dimen_150dp"
    android:layout_marginBottom="@dimen/dimen_4dp"
    android:background="@drawable/layout_bg">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/list_consultation_section_one"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_margin="@dimen/dimen_8dp">
                <de.hdodenhof.circleimageview.CircleImageView
                    android:id="@+id/consultation_image_view"
                    android:layout_width="@dimen/dimen_80dp"
                    android:layout_height="@dimen/dimen_80dp"
                    android:src="@drawable/ic_user_default_image_icon"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
                <ImageView
                    android:id="@+id/consultation_over_image_view"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="@dimen/dimen_16dp"
                    android:src="@drawable/ic_consultation_over_ar"
                    app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                    app:layout_constraintEnd_toEndOf="@+id/consultation_image_view"
                    app:layout_constraintStart_toStartOf="@+id/consultation_image_view"
                    app:layout_constraintTop_toTopOf="parent" />
                <de.hdodenhof.circleimageview.CircleImageView
                    android:id="@+id/consultation_status_online_image_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:src="@drawable/ic_consultation_online"
                    app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                    app:layout_constraintStart_toStartOf="@+id/consultation_image_view" />
                <de.hdodenhof.circleimageview.CircleImageView
                    android:id="@+id/consultation_status_offline_image_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:src="@drawable/ic_consultation_offline"
                    app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                    app:layout_constraintStart_toStartOf="@+id/consultation_image_view" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        <RelativeLayout
            android:id="@+id/list_consultation_section_two"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toStartOf="@id/list_consultation_section_three"
            android:layout_toEndOf="@+id/list_consultation_section_one">
            <TextView
                android:id="@+id/my_consultation_doctor_name_text_view"
                style="@style/subtitle1Style"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/dimen_8dp"
                android:layout_marginTop="@dimen/dimen_8dp"
                android:layout_marginEnd="@dimen/dimen_8dp"
                android:text="@string/dr"
                android:textColor="@color/blue_174c6c" />
            <TextView
                android:id="@+id/my_consultation_doctor_specialty_text_view"
                style="@style/Body2Style"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/my_consultation_doctor_name_text_view"
                android:layout_marginStart="@dimen/dimen_8dp"
                android:layout_marginEnd="@dimen/dimen_8dp"
                android:text="استشارى اطفال"
                android:textColor="@color/gray_aaacad" />
        </RelativeLayout>
        <RelativeLayout
            android:id="@+id/list_consultation_section_three"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true">
            <TextView
                android:id="@+id/my_consultation_date"
                style="@style/Body2Style"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/dimen_4dp"
                android:layout_marginEnd="@dimen/dimen_12dp"
                android:text="2/11/2019"
                android:layout_centerHorizontal="true"
                android:textColor="@color/gray_aeb1b1" />
            <TextView
                android:id="@+id/my_consultation_messages_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/my_consultation_date"
                android:layout_marginStart="@dimen/dimen_4dp"
                android:layout_marginTop="@dimen/dimen_4dp"
                android:layout_marginEnd="@dimen/dimen_12dp"
                android:background="@drawable/my_consultation_messages_number_bg"
                android:padding="@dimen/dimen_12dp"
                android:textColor="@color/white"
                android:layout_centerHorizontal="true"
                tools:text="0" />
        </RelativeLayout>
</RelativeLayout>

отлично работает с Xiaomi Redmi Note 8 (API 28), OPPO A3fW (API 22) (совершенно разные версии API) и не работает с Lenovo tab-7504x (API 24)

Я знаю, что решения работают нормально на всех устройствах, если я установил фиксированный размер для list_consultation_section_three, но я просто хочу понять, почему? this is the the required Layout and the layout what l get within some devices[![][1]]

enter image description here

1 Ответ

0 голосов
/ 12 января 2020

Попробуйте сделать list_certificate_item_parent LinearLayout вместо RelativeLayout и придать ему вес, попробуйте этот код ниже

<?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:id="@+id/list_certificate_item_parent"
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="5"
android:layout_height="@dimen/dimen_150dp"
android:layout_marginBottom="@dimen/dimen_4dp"
android:background="@drawable/layout_bg">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/list_consultation_section_one"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:layout_margin="@dimen/dimen_8dp">
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/consultation_image_view"
                android:layout_width="@dimen/dimen_80dp"
                android:layout_height="@dimen/dimen_80dp"
                android:src="@drawable/ic_user_default_image_icon"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
            <ImageView
                android:id="@+id/consultation_over_image_view"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                android:layout_marginBottom="@dimen/dimen_16dp"
                android:src="@drawable/ic_consultation_over_ar"
                app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                app:layout_constraintEnd_toEndOf="@+id/consultation_image_view"
                app:layout_constraintStart_toStartOf="@+id/consultation_image_view"
                app:layout_constraintTop_toTopOf="parent" />
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/consultation_status_online_image_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="8dp"
                android:src="@drawable/ic_consultation_online"
                app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                app:layout_constraintStart_toStartOf="@+id/consultation_image_view" />
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/consultation_status_offline_image_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="8dp"
                android:src="@drawable/ic_consultation_offline"
                app:layout_constraintBottom_toBottomOf="@+id/consultation_image_view"
                app:layout_constraintStart_toStartOf="@+id/consultation_image_view" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    <RelativeLayout
        android:id="@+id/list_consultation_section_two"
         android:layout_width="0dp"
         android:layout_weight="3"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:layout_centerVertical="true"
        android:layout_toStartOf="@id/list_consultation_section_three"
        android:layout_toEndOf="@+id/list_consultation_section_one">
        <TextView
            android:id="@+id/my_consultation_doctor_name_text_view"
            style="@style/subtitle1Style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dimen_8dp"
            android:layout_marginTop="@dimen/dimen_8dp"
            android:layout_marginEnd="@dimen/dimen_8dp"
            android:text="@string/dr"
            android:textColor="@color/blue_174c6c" />
        <TextView
            android:id="@+id/my_consultation_doctor_specialty_text_view"
            style="@style/Body2Style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/my_consultation_doctor_name_text_view"
            android:layout_marginStart="@dimen/dimen_8dp"
            android:layout_marginEnd="@dimen/dimen_8dp"
            android:text="استشارى اطفال"
            android:textColor="@color/gray_aaacad" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/list_consultation_section_three"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true">
        <TextView
            android:id="@+id/my_consultation_date"
            style="@style/Body2Style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dimen_4dp"
            android:layout_marginEnd="@dimen/dimen_12dp"
            android:text="2/11/2019"
            android:layout_centerHorizontal="true"
            android:textColor="@color/gray_aeb1b1" />
        <TextView
            android:id="@+id/my_consultation_messages_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/my_consultation_date"
            android:layout_marginStart="@dimen/dimen_4dp"
            android:layout_marginTop="@dimen/dimen_4dp"
            android:layout_marginEnd="@dimen/dimen_12dp"
            android:background="@drawable/my_consultation_messages_number_bg"
            android:padding="@dimen/dimen_12dp"
            android:textColor="@color/white"
            android:layout_centerHorizontal="true"
            tools:text="0" />
    </RelativeLayout>

...