サーチ…


前書き

ConstraintLayoutViewGroupで、ウィジェットを柔軟に配置し、サイズを設定できます。 Android 2.3(APIレベル9)以上に対応しています。

フラットなビュー階層を使用して、大きく複雑なレイアウトを作成することができます。 RelativeLayoutと似ていますが、すべてのビューは兄弟ビューと親レイアウトの関係に従ってレイアウトされていますが、 RelativeLayoutよりも柔軟で、Android Studioのレイアウトエディタで使いやすくなっています。

構文

  • ConstraintLayout

    • public void addView(Viewの子、intインデックス、ViewGroup.LayoutParams params)

    • public ConstraintLayout.LayoutParams generateLayoutParams(AttributeSet attrs)

    • public void onViewAdded(ビューを表示)

    • public void onViewRemoved(ビューを表示)

    • public void removeView(ビューの表示)

    • public void requestLayout()

    • 保護されたブール値checkLayoutParams(ViewGroup.LayoutParams params)

    • ConstraintLayout.LayoutParams generateDefaultLayoutParams()を保護します。

    • ViewGroup.LayoutParams generateLayoutParamsを保護しました(ViewGroup.LayoutParams params)

    • 保護されたvoid onLayout(boolean changed、int left、int top、int right、int bottom)

    • 保護されたvoid onMeasure(int widthMeasureSpec、int heightMeasureSpec)

  • ConstraintLayout.LayoutParams

    • public void resolveLayoutDirection(int layoutDirection)

    • public void validate()

    • 保護されたvoid setBaseAttributes(TypedArray a、int widthAttr、int heightAttr)

パラメーター

パラメータ詳細
レイアウトに追加するView
索引レイアウト階層のViewのインデックス
パラメータ ViewLayoutParams
attrs AttributeSetを定義LayoutParams
見る追加または削除されたView
かわったこのViewがサイズまたは位置を変更したかどうかを示します。
Viewに対する左位置。
Viewに対する相対位置の最上位
Viewに対する相対位置
下位の位置、親Viewに対する相対位置
widthMeasureSpec Viewによって課される水平スペース要件
heightMeasureSpec Viewによって課される垂直方向のスペース要件
layoutDirection -
a -
widthAttr -
heightAttr -

備考

Google IO 2016では、GoogleがConstraintLayoutという名前の新しいAndroidレイアウトを発表しました。
現在のところ、このレイアウトはベータ版であるため、注意してください。

制約レイアウトの詳細:

https://codelabs.developers.google.com/codelabs/constraint-layout/index.html

プロジェクトにConstraintLayoutを追加する

ConstraintLayoutを使用するには、Androidスタジオバージョン2.2以降が必要で、バージョン32以上のAndroidサポートリポジトリが必要です。

  1. Constraint Layoutライブラリをbuild.gradleファイルの依存関係として追加します。
dependencies {
   compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
  1. プロジェクトを同期する

プロジェクトに新しい制約レイアウトを追加するには:

  1. モジュールのレイアウトディレクトリを右クリックし、[ New > XML > Layout XML. ] New > XML > Layout XML. ] New > XML > Layout XML. ]をクリックしNew > XML > Layout XML.
  2. レイアウトの名前を入力し、ルートタグに"android.support.constraint.ConstraintLayout"と入力します。
  3. Finishをクリックします。

それ以外の場合は、レイアウトファイルを追加してください:

<?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.support.constraint.ConstraintLayout>

チェーン

ConstraintLayout alpha 9以降、 チェーンが利用可能です。 チェーン内のビューのセットであるConstraintLayout制約とBに接続、すなわち、それらの間の双方向ように接続され、Bは別の制約とに接続されています。

例:

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

    <!-- this view is linked to the bottomTextView --> 
    <TextView
        android:id="@+id/topTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        app:layout_constraintBottom_toTopOf="@+id/bottomTextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainPacked="true"/>

    <!-- this view is linked to the topTextView at the same time --> 
    <TextView
        android:id="@+id/bottomTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bottom\nMkay"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/topTextView"/>

</android.support.constraint.ConstraintLayout>

この例では、2つのビューが上下に配置され、両方が垂直にセンタリングされています。チェーンのバイアスを調整することによって、これらのビューの垂直位置を変更することができます。チェーンの最初の要素に次のコードを追加します。

app:layout_constraintVertical_bias="0.2"

垂直チェーンでは、最初の要素は一番上のビューで、横のチェーンでは一番左のビューです。最初の要素はチェーン全体の振る舞いを定義します。

チェーンは新機能であり、頻繁に更新されます。 ここに公式のAndroid関連文書があります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow