Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Constraintlayout
Search
Ygor César
May 26, 2018
Technology
56
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Constraintlayout
Ygor César
May 26, 2018
More Decks by Ygor César
See All by Ygor César
Making your life easier with CustomViews
ygorcesar
0
52
Integrando seus Apps Android ao Firebase
ygorcesar
0
77
Other Decks in Technology
See All in Technology
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
220
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
130
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
220
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
220
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
160
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
150
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
140
AI駆動開発における開発環境のセキュリティの考え方
yamahiro
2
420
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
150
Optunaの最新リリースv5.0について
pfn
PRO
0
140
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
390
Browser Spec: Testing Hotwire with Ruby
takahashim
1
160
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
Building AI with AI
inesmontani
PRO
1
1.3k
The Curse of the Amulet
leimatthew05
3
16k
Un-Boring Meetings
codingconduct
0
460
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
450
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Designing for Timeless Needs
cassininazir
1
530
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Transcript
ConstraintLayout Ygor César Android Developer
ViewGroup • FrameLayout • FlexboxLayout • GridLayout • RelativeLayout •
LinearLayout • TableLayout • GridView • Entre outros...
Evitar hierarquia de views profunda (O chamado layout orientado a
Hadouken)
None
Performance
E então o ConstraintLayout
• Flat View Hieararchy • Fácil de usar com o
Editor de Layouts do Android Studio • Compatível com versões do Android acima da versão 2.3 (Api Level 9) • Xml continua legível • Biblioteca separada
Adicionar dependência ao Build.gradle dependencies { compile 'com.android.support.constraint:constraint-layout:1.1.0' }
Layouts existentes
None
Constraints
Realize ajustes em sua View 1. Aspect Ratio 2. Crie/Delete
uma Constraint 3. Height/Width 4. Margin 5. Bias
Chain
Chain Spread Chain Spread Inside Chain Packed Chain
Groups
Groups <android.support.constraint.Group android:id="@+id/group" android:layout_width="wrap_content" android:layout_height="wrap_content" app:constraint_referenced_ids="button_load,textview_status" />
Guideline
Guideline <android.support.constraint.Guideline android:id="@+id/guideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_begin="16dp" />
Já acabou?
Ainda não
Barriers
Barriers
Barriers <android.support.constraint.Barrier android:id="@+id/barrier7" android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="end" app:constraint_referenced_ids="textView2,textView1" />
Circular Positioning
Circular Positioning <Button android:id="@+id/buttonA" ... /> <Button android:id="@+id/buttonB" … app:layout_constraintCircle="@+id/buttonA"
app:layout_constraintCircleRadius="100dp" app:layout_constraintCircleAngle="45" />
Layer
Layer <android.support.constraint.Layer android:id="@+id/group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background=”@color/colorPrimary” app:constraint_referenced_ids="button_load,textview_status" />
Placeholder
Placeholder <android.support.constraint.Placeholder android:id="@+id/template_action" android:layout_width="48dp" android:layout_height="48dp" app:content="@+id/save" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
Placeholder placeHolderView.setContentId(R.id.my_view_id)
Obrigado!
Agora acabou!!!
[email protected]
/ygorcesar