Макет ограничения не работает должным образом, несмотря на добавление ограничений

Вы должны изменить Shape(double w, double h) на Shape(w, h). Фактически вы вызываете базовый конструктор.

Кроме того, вам не нужно устанавливать width и height в тело конструктора производного класса:

  Rectangle(double w, double h) : Shape(w, h)
  {}

. Это связано с тем, что в списке инициализаторов Shape(w, h) вызывается конструктор базового класса (shape), который будет устанавливать эти значения для вас.

Когда производный объект создается, Выполнено:

  1. Память для Shape выделена
  2. Соответствующий базовый конструктор называется
  3. Список инициализации инициализирует переменные
  4. Тело конструктора исполняется
  5. Элемент управления возвращается вызывающему

. В вашем примере подобъект Shape инициализируется Shape(double w = 0, double h = 0, double r = 0). В этом процессе все элементы базовой части (width, height, radius) инициализируются базовым конструктором. После этого выполняется тело производного конструктора, но вам ничего не нужно менять, поскольку все они заботятся о базовом конструкторе.

2
задан ashwin mahajan 19 January 2019 в 16:05
поделиться

3 ответа

Для всех ваших представлений вместо match_parent

используйте 0dp в xml или выберите match_constraint в представлении разработки

0
ответ дан Khurram Shahzad 19 January 2019 в 16:05
поделиться

Пожалуйста, попробуйте ниже макет:

<?xml version="1.0" encoding="utf-8"?>
<layout 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.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/civ_user_avatar"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginStart="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="16dp"
            android:src="@color/primary"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/tv_status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="16dp"
            android:layout_marginRight="16dp"
            android:text="TextView"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/civ_user_avatar" />

        <TextView
            android:id="@+id/tv_candidate_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:layout_marginLeft="24dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:text="TextView"
            app:layout_constraintEnd_toStartOf="@+id/tv_status"
            app:layout_constraintStart_toEndOf="@+id/civ_user_avatar"
            app:layout_constraintTop_toTopOf="@+id/civ_user_avatar" />


    <TextView
        android:id="@+id/tv_candidate_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="TextView"
        android:textAppearance="@style/TextSecondary"
        app:layout_constraintEnd_toStartOf="@+id/tv_status"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/tv_candidate_name"
        app:layout_constraintTop_toBottomOf="@+id/tv_candidate_name" />

        <TextView
            android:id="@+id/textView7"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:maxLines="1"
            android:text="Assessment : "
            android:textColor="@color/black"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="@+id/tv_candidate_name"
            app:layout_constraintTop_toBottomOf="@+id/tv_candidate_email" />

        <TextView
            android:id="@+id/tv_assessment_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:text="TextView"
            app:layout_constraintBottom_toBottomOf="@+id/textView7"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toEndOf="@+id/textView7"
            app:layout_constraintTop_toTopOf="@+id/textView7" />
    </android.support.constraint.ConstraintLayout>
</layout>
0
ответ дан Rujul Gandhi 19 January 2019 в 16:05
поделиться

Попробуйте использовать «Направляющие», например, горизонтальные, и там вам будет удобнее разместить все виды. Если вы объедините его с 2 или 3 вертикалями (ориентирами), вам будет легче его получить.

0
ответ дан cod-e-rection 19 January 2019 в 16:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: