Пользовательский вид не соответствует ограничениям в макете ограничений - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть собственный FrameLayout в моем проекте, который действует как кнопка, так как я не хотел повторять один и тот же код.Представление работает отлично, но когда мне нужно расположить их горизонтально, ограничивая друг друга, центральное представление не следует ограничениям и вместо этого выравнивается с родительским началом, затмевая другое.Что я должен сделать с моим кодом, чтобы гарантировать, что ограничения работают, как ожидалось?Код следующий:

dash_buttons.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        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">
    <com.revosleap.wazalendo.utils.ui.DashButton
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@id/dashButtonLoan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:dash_text="Pay"
            app:dash_icon="@drawable/ic_pay"
            android:id="@+id/dashButtonPay"
    />
    <com.revosleap.wazalendo.utils.ui.DashButton
            app:layout_constraintStart_toEndOf="@id/dashButtonPay"
            app:layout_constraintEnd_toStartOf="@id/dashButtonAccount"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:dash_text="Loan"
            app:dash_icon="@drawable/ic_loan"
            android:id="@+id/dashButtonLoan"

    />
    <com.revosleap.wazalendo.utils.ui.DashButton
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/dashButtonLoan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:dash_text="Account"
            app:dash_icon="@drawable/ic_user"
            android:id="@+id/dashButtonAccount"
    />
</android.support.constraint.ConstraintLayout>

Результат

The result I get

1 Ответ

0 голосов
/ 20 февраля 2019

Я наконец понял это.Кажется, у Constraint Layout есть некоторые проблемы с пользовательскими представлениями, которые используют ресурс макета, содержащий Linear Layout.Чтобы достичь своей цели, я изменил родительский макет с макета «Ограничение» на макет «Кадр» и использовал гравитацию для поддержания позиций, и теперь все работает идеально.

...