2016-12-28 6 views
0

Я использую новый ConstraintLayout для Android для моего приложения, и у меня возникли проблемы с наличием полей на элементах. Для справки Я использую следующую строку в своем файле gradle для ConstraintLayout com.android.support.constraint:constraint-layout:1.0.0-beta4. Код в моем макете ниже.Поля для детей ConstraintLayout не отображаются?

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingStart="@dimen/activity_horizontal_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/post_vertical_padding" 
    android:paddingEnd="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingBottom="@dimen/post_vertical_padding" 
    android:background="?android:attr/selectableItemBackground"> 

    <TextView 
     style="@style/TitleText" 
     android:id="@+id/post_type" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="@dimen/post_line_vertical_padding" 
     android:layout_marginEnd="@dimen/post_type_horizontal_padding" 
     android:layout_marginRight="@dimen/post_type_horizontal_padding" 
     app:layout_constraintLeft_toRightOf="@id/poster_profile_pic" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <TextView 
     android:id="@+id/poster_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_constraintLeft_toRightOf="@id/post_type" 
     app:layout_constraintBaseline_toBaselineOf="@id/post_type" /> 

</android.support.constraint.ConstraintLayout> 

ответ

1

1-если вы не используете paddingStart нет необходимости paddingLeft

2- app:layout_constraintLeft_toRightOf="@id/poster_profile_pic" нет вида изображения здесь с идентификатором "poster_profile_pic"

3- android:layout_marginBottom не будет работать, кроме вас сделать constraintBottom_toBottomOf="parent"

4- android:layout_marginRight должно быть android:layout_marginLeft, но в poster_name, поскольку имя_пакета имеет

app:layout_constraintLeft_toRightOf="@id/post_type" 
+1

Hi amorenew. Исправленные вами проблемы основаны на фрагменте кода, но не существуют в фактическом коде. Это моя ошибка, пытаясь изолировать один экземпляр, удаляя мой окружающий код. Ваш третий пункт, однако, был полезен. Кажется, что маржа применяется в 'ConstraintLayout', в этом направлении должно быть ограничение. Таким образом, левое поле будет применяться только в том случае, если для этого элемента есть ограничение для левой стороны. Это не включает ограничения от других элементов на этой стороне, таких как 'layout_constraintRight_toLeftOf', которые не будут работать. –