2017-08-24 5 views
1

私は、ヘッダーとそのヘッダーの下にコンテンツが必要なAndroidアクティビティを作成しています。私はコンテンツの上だけにしか見えない背景のイメージを持ちたいが、ヘッダーには載せたくない。Android - コンストレイントレイアウト内の他のコンストレインレイアウトレイアウトの背景が表示されない

enter image description here

絵から、あなたは私のイメージは、私はしたくない画面のロゴ部分、上にも随分されていることがわかります。ここで

は私の現在のレイアウトの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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background_11" 
    tools:context=".login.LoginActivity" 
    > 

    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="381dp" 
     android:layout_height="156dp" 
     android:src="@drawable/logo" 
     tools:ignore="ContentDescription" 
     app:layout_constraintTop_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginTop="-480dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginStart="10dp" 
     android:layout_marginEnd="10dp" 
     app:layout_constraintHorizontal_bias="0.47" /> 

    <ImageView 
     android:id="@+id/emptyImage" 
     android:layout_width="384dp" 
     android:layout_height="445dp" 
     android:layout_marginBottom="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_marginTop="0dp" 
     android:background="@color/TICK_BACKGROUND" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/logo" 
     app:layout_constraintVertical_bias="0.0" 
     app:srcCompat="@drawable/empty" /> 

    <EditText 
     android:id="@+id/login_usernameTextField" 
     android:layout_width="291dp" 
     android:layout_height="63dp" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="80dp" 
     android:background="@drawable/rounded_text_edit_shape" 
     android:ems="10" 
     android:hint="Username" 
     android:inputType="textPersonName" 
     android:textColor="@color/INPUT_TEXT_COLOR" 
     android:textColorHint="@color/iron" 
     android:textCursorDrawable="@null" 
     app:layout_constraintHorizontal_bias="0.506" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/logo" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp" /> 

    <EditText 
     android:id="@+id/login_passwordTextField" 
     android:layout_width="291dp" 
     android:layout_height="63dp" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="-38dp" 
     android:background="@drawable/rounded_text_edit_shape" 
     android:ems="10" 
     android:hint="Password" 
     android:textCursorDrawable="@null" 
     android:inputType="textPassword" 
     android:textColor="@color/INPUT_TEXT_COLOR" 
     android:textColorHint="@color/iron" 
     app:layout_constraintHorizontal_bias="0.506" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/login_usernameTextField" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp" /> 

    <Button 
     android:id="@+id/login_loginButton" 
     android:onClick="loginButtonClick" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="30dp" 
     android:background="@drawable/rounded_button_shape" 
     android:text="Log In" 
     android:textColor="@color/white" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/login_passwordTextField" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginBottom="8dp" 
     app:layout_constraintVertical_bias="0.28" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp" /> 

</android.support.constraint.ConstraintLayout> 

私はコンテンツが含まれているヘッダーと別のレイアウトを追加し、親のレイアウトを作成し、そのレイアウトの内側を考えました。そして、このようなのようなコンテンツのレイアウト内の背景を設定します。しかし、私の背景が表示されない

<?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"> 




    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     app:srcCompat="@drawable/logo_2" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginTop="-1dp" 
     android:layout_marginLeft="0dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" /> 

    <android.support.constraint.ConstraintLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:background="@drawable/background_11" 
     app:layout_constraintTop_toBottomOf="@id/logo" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintLeft_toLeftOf="parent"> 

    </android.support.constraint.ConstraintLayout> 
</android.support.constraint.ConstraintLayout> 

:ここandroid:background="@drawable/background_11"

は、私が試したコードがされています。ここreusltsは以下のとおりです。 enter image description here

答えて

1

私はそれがリニアレイアウトの内側に制約レイアウトを作ることによって働かせた:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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:orientation="vertical"> 


    <ImageView 
     android:id="@+id/imageView5" 
     android:layout_width="wrap_content" 
     android:layout_height="146dp" 
     app:srcCompat="@drawable/netset_logo_2" /> 

    <android.support.constraint.ConstraintLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="@drawable/background_11"> 

    </android.support.constraint.ConstraintLayout> 
</LinearLayout> 

enter image description here

それでも私はしないのはなぜ私の最初のソリューションを理解していません作業。制約レイアウト内に制約レイアウトを追加できないのはなぜですか?

+0

cool、man!試してみてください – Sergey

1

他のConstraintLayoutでConstraintLayoutを使用できますが、いくつかのルールを尊重する必要があります。 ConstraintLayoutのすべての直接の子は左、上、右、下に制約を持つ必要があります。

内側のConstraintLayoutの左右の拘束がないと、彼は幅と高さが0dpに等しく、彼は表示されないと思います。

ConstraintLayoutの内側に制約を追加しようとしましたか?

<?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"> 

    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     app:srcCompat="@drawable/logo_2" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginTop="-1dp" 
     android:layout_marginLeft="0dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" /> 

    <android.support.constraint.ConstraintLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:background="@drawable/background_11" 
     app:layout_constraintTop_toBottomOf="@id/logo" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent"> 

    </android.support.constraint.ConstraintLayout> 
</android.support.constraint.ConstraintLayout> 

これが役に立ちます。

0

当然ながら、制約レイアウトを画面全体に適用し、ロゴのサイズを小さくしました。 あなたは画面上にロゴがあり、その下には背景があります。 メインのレイアウトレイアウト内の別のサブレイアウトに "バックグラウンド"を設定することができます。この

<constraintlayout 
width:match_parent 
height:match_parent> 
    <logo here/> 
    <constraintlayout 
    background_here> 
    <constraintlayout/> 
<constraintlayout/> 

よう

何かが、それは理にかなって願っています。

関連する問題