2017-08-22 10 views
0

私は、画面の上部にボタンを置いて、その下に(すべての画面サイズ)画面を埋める必要のあるImageViewを入れようとしています。 RelativeLayoutではやりにくいようですが、ConstraintLayoutではそれを成功させることができません。ConstraintLayoutで2つのビューを画面に塗りつぶす方法は?

Here is an example of what it's look like in RelativeLayout:

とXMLコード:あなたの助けのための

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Download Image" 
    android:id="@+id/button" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:onClick="downloadImage" /> 

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/imageView" 
    android:layout_below="@+id/button" 
    android:layout_alignParentStart="true" /> 

おかげで、 シェイ。

+0

画像を背景とし、フォアグラウンドのボタンにしますか? –

答えて

0
<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Download Image" 
    android:id="@+id/button" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:onClick="downloadImage" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent"/> 

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/imageView" 
    android:layout_below="@+id/button" 
    android:layout_alignParentStart="true" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/button" 
    app:layout_constraintBottom_toBottomOf="parent"/> 

ボタンには、left、right、およびtopの制約がparentである必要があります。

ImageViewには、左下、右下、および下限の制約があり、ボタンの下端が必要です。

+0

ありがとうございました。非常に有用なコメント。 –

1

たぶん私は完全にあなたの質問をunderstodていませんでしたが、これは私はあなたが一例として与えた画像を再現するためにやったことです:

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

    <Button 
     android:id="@+id/button2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="8dp" 
     android:text="Button" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <ImageView 
     android:id="@+id/imageView27" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.59" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/button2" 
     app:srcCompat="@drawable/common_google_signin_btn_icon_dark" /> 
</android.support.constraint.ConstraintLayout> 

と結果: enter image description here

0

実際fill_parentプロパティ推奨されません。これは間違いなく(画面を記入しますImageViewの画面の上部にと、その下ボタンを表示するためにあなたの質問の使用についてConstraintLayout

の利用可能なスペースを埋めるために、次のコードを0dpを使用すべての画面サイズ)。

<?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"> 
    <Button 
     android:id="@+id/button" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:onClick="downloadImage" 
     android:text="Download Image" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/button" /> 
</android.support.constraint.ConstraintLayout> 

注:あなたはマージン/パディングを追加したい場合は、レイアウトや要件に応じ任意のビューに適用されます。 ConstraintLayoutの内側のビューに余白を追加する場合、そのビューにはその粒子面のConstraintが必要です。

関連する問題