установить фон при использовании макета ограничения - PullRequest
0 голосов
/ 30 июня 2018

Я использую макет ограничения в качестве родителя, и добавил несколько дочерних, используя ограничение. Есть три вида по горизонтали, и я должен применить фон с закругленными углами только для двух видов, что было достигнуто с помощью линейного макета ранее. Но с помощью компоновки ограничений я не могу этого добиться.

Как мне этого добиться?

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

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

  • Поместить представление изображения перед просмотром текста

  • установить ограничение вида представления изображения для начала, сверху для соответствия первому виду текста

  • Установить ограничение вида вида изображения * end & bottom для соответствия последним видам текста

    Это растянет imageview до прямоугольника, определенного верхним левым краем первого вида и нижним правым последним видом.

    Обратите внимание, что ImageView должен быть перед просмотром текста:

         <!--Background Image View-->
      <ImageView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:background="@drawable/lake"
            app:layout_goneMarginRight="@dimen/activity_vertical_margin"
    
            <!--Top_LEFT by first view-->
            app:layout_constraintStart_toStartOf="heding"
            app:layout_constraintTop_toTopOf="@+id/heding"
    
            <!--BOTTOM RIGHT by last view-->
            app:layout_constraintEnd_toEndOf="@+id/info"
            app:layout_constraintBottom_toBottomOf="@+id/info"
            />
    
            <!--first view-->
        <TextView
            android:id="@+id/heding"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:text="Lake Tahoe "
            android:textSize="17sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.05"
            app:layout_constraintStart_toEndOf="@+id/thumb"
            app:layout_constraintTop_toTopOf="@+id/thumb"
            tools:layout_constraintBottom_creator="1"
            android:textColor="#FFF"
            tools:layout_constraintTop_creator="1" />
    
            <!--last view-->
    
        <TextView
            android:id="@+id/info"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:text="LakeTahoe is a large freshwater lake in Sierra Naveda"
            android:textSize="15sp"
            android:textColor="#FFF"
            app:layout_constraintBottom_toBottomOf="@+id/thumb"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.05"
            app:layout_constraintStart_toEndOf="@+id/thumb"
            app:layout_constraintTop_toBottomOf="@+id/heding"
            app:layout_constraintVertical_bias="1.0"
            tools:layout_constraintLeft_creator="1"
            tools:layout_constraintRight_creator="1"
            tools:layout_constraintTop_creator="1" />
    

Результат:

enter image description here

0 голосов
/ 30 июня 2018

ConstraintLayout недавно представил концепцию constrainthelper, который можно использовать для выполнения действий над группой представлений. «Группа», которая используется для переключения видимости множественного представления, является подклассом этого.

Ограничитель, который изменяет фон нескольких представлений вместе, еще не является частью стабильного выпуска, но скоро будет.

До этого вы можете получить фон, как в примере ниже, где 3 textview имеют общий фон, используя класс View:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
  android:background="#AAA">

  <View
    android:id="@+id/background"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="#FFF"
    app:layout_constraintBottom_toBottomOf="@+id/textView3"
    app:layout_constraintEnd_toEndOf="@+id/textView1"
    app:layout_constraintStart_toStartOf="@+id/textView1"
    app:layout_constraintTop_toTopOf="@+id/textView1" />

  <TextView
    android:id="@+id/textView1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:padding="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:text="TextView" />

  <TextView
    android:id="@+id/textView2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:padding="8dp"
    app:layout_constraintEnd_toEndOf="@+id/textView1"
    app:layout_constraintStart_toStartOf="@+id/textView1"
    app:layout_constraintTop_toBottomOf="@+id/textView1"
    tools:text="TextView" />

  <TextView
    android:id="@+id/textView3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:padding="8dp"
    app:layout_constraintEnd_toEndOf="@+id/textView1"
    app:layout_constraintStart_toStartOf="@+id/textView1"
    app:layout_constraintTop_toBottomOf="@+id/textView2"
    tools:text="TextView" />
</android.support.constraint.ConstraintLayout>

РЕДАКТИРОВАТЬ: Хороший блог о том, что ожидать от ConstraintLayout 2.0

...