Androidの拘束レイアウト


[size=large]CostaintLayoutの初めての使用まとめ[/size]
転載は出典を明記してください。[url]http://renyuan-1991.iteye.com/blog/2304152[/url]
最近google I/O大会で7.0の新しいものを持ってきましたが、私たちが開発した最も注目されているのは、Adroid Studio 2.2とCostrantLayoutという依存の制約庫かもしれません。
このレイアウトを使う必要がある時は2.2以上のASを用意しておきます。
プロジェクトに依存を追加します。
dependencies {  
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
}
[size=medium]属性追加:[/size]
app:layout_editor_absoluteX
app:layout_editor_absoluteY
上の2つの属性は、コントロールの絶対位置を指定します。この属性で位置を指定するコントロールは、制約関係を必要としないことができます。
app:layout_constraintBottom_toBottomOf="@+id/activity_main" 
app:layout_constraintLeft_toLeftOf="@+id/activity_main"
app:layout_constraintRight_toRightOf="@+id/activity_main"
app:layout_constraintTop_toTopOf="@+id/activity_main"
以上の4つの属性は、他の任意の単位に対するコントロールの制約関係を指定するために使用されます。(制約オブジェクトは、親のコントロールとなり、同じレベルの他のコントロールとなります。)絶対位置を指定せず、制約条件を指定しない場合、このコントロールは、デフォルトの開始位置である親コントロールの左上の角が親コントロールの座標に対して(0,0)位置に配置されます。以上の4つの属性はペアで出現します。つまり同じ方向の2つの制約はペアで出現しなければなりません。つまり、layout_を指定したらconstrantBottomtoBottomOfはlayout_を指定しなければなりません。constrain Top_TopOfは有効ですが、この時にコントロールの位置がラyout(u)になります。construaint Veticalbiasという属性を説明します。画面の高さからコントロールの高さを差し引いて、コントロールのmagitopとmagingbottomの残りの高さを100%で表します。construaint Veticalbiasの値はこのコントロールの上の外の距離が残りの高さに占める割合を表します。[img]http://dl2.iteye.com/upload/attachment/0118/2281/44b6e494-86d4-3be1-9271-cf823a1f33cc.png[img]
上図の波線A部分にB部分を加えます。
100%ということです。しばらくは波の総延長と言いましょう。それではラyout_construaint VeticalbiasはA部分が波線全体の長さを占める割合を表しています。図中の波線はスクリーンエッジに達しておらず、上端72 dpから下縁16 dpまで離れている。計算比はマーギンを除去した後の残りの空間で行われます。マーギンとは関係ありません。水平方向の同理
app:layout_constraintLeft_toRightOf

app:layout_constraintRight_toLeftOf

app:layout_constraintTop_toBottomOf

app:layout_constraintBottom_toTopOf
これらの属性は主にコントロールとコントロールの間の制約であり、ルールは同じです。
ap:layout_constrain BaselinetoBaseline Of:コントロールのベースラインに合わせる
TextViewというコントロールはWrap_を使ってもいいです。content文字もコントロールのエッジに密着しません。二つの異なるフォントサイズのtextviewはこのベースラインで制約できます。
app:layout_constraintStart_toStartOf
app:layout_constraintEnd_toEndOf
app:layout_constraintStart_toEndOf
app:layout_constraintEnd_toStartOf
これらの制約は特殊であり、これらの属性はコントロールに開始位置を指定するためのものであり、その後のmarginはこの値に基づいてオフセットされるものと理解できる。次の図のように
[img]http://dl2.iteye.com/upload/attachment/0118/2295/ee3afd6e-035e-3bce-a08d-d1eb0d6e148d.png[img]
app:layout_constraintCenterX_toCenterX
app:layout_constraintCenterY_toCenterY
上記の2つの属性は、名前の通りX軸またはY軸方向の中心であり、同様に、この属性の優先度はmarginより高い。この値を指定すると、magin値が指定した位置が再びずれます。このとき、コントロールをドラッグすると、left Torightという属性が生成されます。このような属性を生成すると、centocenterはあまり効果がありません。
コントロールの幅を一定の割合で高く見せる必要があるなら、constrantDimenion Ratioで作成できます。
*left、right、top、bottomの4つの辺はすべて制約が必要で、bottomの制約はbaselineで代替することができます。
*幅の高さは少なくとも一つが0 dpか-1 dpであり、いずれも0 dpであれば親のレイアウトで許容できる最大範囲で表示されます。
[size=medium]参照線[/size]
レイアウトに水平または垂直の2つの参照線を追加できます。次の3つの属性はガイドラインだけに使えます。
app:relativePercent
app:relativeBegin
app:relativeEnd
app:orientation
前の3つの属性はどれか一つで基準線の位置が確定できます。orentationは、基準線が水平か垂直かを指定します。relativePercentは参照線の位置をパーセンテージで表します。relativeBeginとRelativeEndは、それぞれ始点と終点からの距離を表しています。(水平と垂直方向のそれぞれの画面の先端と底、画面の左側と右側は始点と終点を表しています。)
[size=medium]説明[/size]
Contstraint Layoutのサブレイアウトにおいて、View Groupタイプのコントロール(例えば、相対配置、線形配置)のようなコントロールのサブ空間は、制約の属性を使用することができません。また、このレイアウトはドラッグできません(AS 2.2プレビュー版)。
転載は出典を明記してください。[url]http://renyuan-1991.iteye.com/blog/2304152[/url]
プログラミングが好きな子供たちがこのグループに加わって、お互いに助け合いながら勉強してほしいです。群番号:141877583