2017-09-11 7 views
1

私は制約レイアウトを使用しています。初心者ですが、誰でも水平レイアウトと水平レイアウトの両方で同じように見えます私はこれを作成しましたが、これは異なる視野で見ています。 私は両方のレイアウトを個別に作成する必要がありますか?androidの制約レイアウトを使用して縦横レイアウトで同じように見える単一レイアウトを作成する方法

5インチ画面用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:padding="16dp" 
tools:context=".MainActivity"> 

<android.support.constraint.Guideline 
    android:id="@+id/guideline" 
    android:layout_width="1dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="0.5"/> 

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

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

<Button 
    android:id="@+id/button4" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_marginTop="88dp" 
    app:layout_constraintTop_toBottomOf="@+id/button3" 
    android:layout_marginRight="8dp" 
    app:layout_constraintRight_toRightOf="parent" 
    android:layout_marginLeft="8dp" 
    app:layout_constraintLeft_toLeftOf="parent" 
    android:layout_marginBottom="8dp" 
    app:layout_constraintVertical_bias="0.0" /> 

<android.support.constraint.Guideline 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/guideline2" 
    app:layout_constraintGuide_begin="1097dp" 
    android:orientation="horizontal" /> 

答えて

1

これは、両方の画面の向きで動作するはずです。この

<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:padding="16dp" 
    tools:context=".MainActivity"> 

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

    <Button 
     android:id="@+id/button3" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintBottom_toTopOf="@+id/button4" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp" 
     app:layout_constraintTop_toBottomOf="@+id/button2" /> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginStart="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginEnd="8dp" 
     app:layout_constraintTop_toBottomOf="@+id/button3" /> 

</android.support.constraint.ConstraintLayout> 

のようなコードを使用します。

NOTE

ConstraintLayout

、レイアウトエディタを使用して、テキストエディタを使用するよりもはるかに簡単です。

+0

私のコードの問題点を教えてください。 – Sunil

+1

@Sunilまず、あなたのコードはハードコードされた値を 'marginTop'パラメータとして使用してボタンを中央に持ってきます。これはお使いのデバイスではうまくいくかもしれませんが、異なるサイズや向きのデバイスでは同じように見えません。 –

関連する問題