Макет ограничений:1.0.0-alpha9 белый экран

Я переключился на новое обновление для макета ограничения, и это то, что я получаю, просто белый экран

Возможно, я делаю что-то не так в своем фрагменте, но нет, это не показывает никакой ошибки. Поэтому я попытался проверить макет, и это то, что я получаю

он создает пространство для текстовых редакторов, но ничего не рисует. вот мой XML

<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:id="@+id/fragment_login"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/Plum"
    android:clickable="true"
    tools:context=".ui.LoginFragment">

    <EditText
        android:id="@+id/login_username"
        android:layout_width="300dp"
        android:layout_height="50dp"
        android:gravity="center"
        android:hint="@string/Username_or_Email"
        android:inputType="textNoSuggestions|textEmailAddress"
        android:lines="1"
        android:linksClickable="false"
        app:layout_constraintBottom_toTopOf="@+id/login_password"
        app:layout_constraintRight_toRightOf="@+id/login_password" />

    <EditText
        android:id="@+id/login_password"
        android:layout_width="300dp"
        android:layout_height="50dp"
        android:gravity="center"
        android:hint="@string/password"
        android:inputType="textPassword"
        android:lines="1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/login_login"
        style="@style/Base.Widget.AppCompat.Button.Colored.login"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:text="@string/login"
        app:layout_constraintLeft_toLeftOf="@+id/login_password"
        app:layout_constraintRight_toRightOf="@+id/login_password"
        app:layout_constraintTop_toBottomOf="@+id/login_password" />

    <Button
        android:id="@+id/login_singup"
        style="@style/Base.Widget.AppCompat.Button.Colored.signup"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:background="@color/Indigo"
        android:clickable="true"
        android:gravity="center"
        android:lines="1"
        android:text="@string/singup"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

</android.support.constraint.ConstraintLayout>

Я не уверен, что вызывает проблему. Он отлично работал с альфа 7:/ любая помощь?

Редактировать:

Фрагмент создается так:

mFragmentManager = getSupportFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();
        switch (fragmentName) {
            case "LoginFragment":
                Log.d(KEY_CLASS_NAME, "createFragment-LoginFragment");
                fragment = new LoginFragment();
                mFragmentTransaction.setCustomAnimations(
                        R.anim.icon_anim_fade_in,
                        R.anim.icon_anim_fade_out,
                        R.anim.icon_anim_fade_in,
                        R.anim.icon_anim_fade_out)
                        .add(R.id.dispatcher_container, fragment, SPKey.KEY_LOGIN_FRAGMENT)
                        .addToBackStack(SPKey.KEY_LOGIN_FRAGMENT)
                        .commit();
                break;

OnCreateView() реализован как таковой внутри LoginFragment:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        mView = inflater.inflate(R.layout.fragment_login, container, false);
        if (mView != null) {
            Log.d("LoginFragment", "creating ver");
            mUsername = (EditText) mView.findViewById(R.id.login_username);
            mPassword = (EditText) mView.findViewById(R.id.login_password);
            mLogin = (Button) mView.findViewById(R.id.login_login);
            mSignUp = (Button) mView.findViewById(R.id.login_singup);
            mLogin.setOnClickListener(this);
            mSignUp.setOnClickListener(this);
            Log.d("LoginFragment", "done creating ver");
        } else {
            Log.d("LoginFragment", "mView is empty");
        }
        return mView;
    }

Кроме того, я только что обнаружил, что SDK-менеджер в Android Studio 2.2.1 загружает "m2repository" из "~\Android\sdk\extras", но если вы используете автономный SDK-менеджер, он помещает "m2repository" внутри "~ \ Android \" SDK \ Extras\ андроида". Я не знаю, имеет ли это значение, но там находится папка компоновки ограничений.

3 ответа

Да глупая ошибка Понизьте макет ограничения до 7, тогда он должен работать

иди к своему ученику и замени

скомпилировать 'com.android.support.constraint: компоновка ограничений:1.0.0-alpha9'

с

скомпилировать 'com.android.support.constraint: компоновка ограничений:1.0.0-alpha7'

не уверен, почему это решает это

Ниже приведен пример использования макета ограничения.

XML,

<?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"
                                             android:layout_width="match_parent"
                                             android:layout_height="match_parent"
                                             android:layout_alignParentLeft="true"
                                             android:layout_alignParentStart="true"
                                             android:layout_alignParentTop="true"
                                             android:layout_margin="16dp">

<EditText
    android:id="@+id/login_username"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="Email"
    android:inputType="textNoSuggestions|textEmailAddress"
    android:lines="1"
    android:linksClickable="false"/>

<EditText
    android:id="@+id/login_password"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="Password"
    android:inputType="textPassword"
    android:lines="1"
    app:layout_constraintTop_toBottomOf="@+id/login_username"/>

<android.support.v7.widget.AppCompatButton
    android:id="@+id/login_login"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Login"
    app:layout_constraintTop_toBottomOf="@+id/login_password"/>

<android.support.v7.widget.AppCompatButton
    android:id="@+id/login_singup"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:lines="1"
    android:text="Signup"
    app:layout_constraintLeft_toRightOf="@+id/login_login"
    app:layout_constraintTop_toBottomOf="@+id/login_password"/>
</android.support.constraint.ConstraintLayout>

И вывод,

Надеюсь, это поможет вам

Ура!!!

Мы только что опубликовали ConstraintLayout beta 1, в котором исправлено несколько проблем, которые могли бы объяснить вашу ошибку.

Хотя я не смог воспроизвести вашу точную проблему, пожалуйста, обновите и проверьте, решает ли бета 1 эту проблему - я хотел бы подтвердить, что это так.

Спасибо!

Другие вопросы по тегам