Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Material Components for Android 1.0.0 → 1.1.0
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Nabe
May 15, 2019
Programming
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Material Components for Android 1.0.0 → 1.1.0
https://kanmoba.connpass.com/event/129285/
Nabe
May 15, 2019
More Decks by Nabe
See All by Nabe
カクヨムAndroidアプリのリブート
numeroanddev
0
670
GraphicsLayerのBitmap作成
numeroanddev
0
240
GraphQLとGigaViewer for Apps
numeroanddev
4
4.7k
Android アプリのプロジェクトをモダンにし続ける工夫
numeroanddev
1
790
Material 3で Material 2ぽい見た目にする
numeroanddev
2
670
Google I/O 2023 の 個人的おすすめセッションの紹介 / Introducing interesting sessions at Google IO 2023
numeroanddev
1
510
Jetpack ComposeのTalkback対応/Improve Talkback in Jetpack Compose
numeroanddev
0
600
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
1k
Jetpack Composeでアプリを開発して遭遇した問題
numeroanddev
0
770
Other Decks in Programming
See All in Programming
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
Android CLI
fornewid
0
210
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
1
250
テーブルをDELETEした
yuzneri
0
140
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
540
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.4k
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
190
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
480
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
今さら聞けない .NET CLI
htkym
0
180
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
A Tale of Four Properties
chriscoyier
163
24k
BBQ
matthewcrist
89
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Thoughts on Productivity
jonyablonski
76
5.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
We Have a Design System, Now What?
morganepeng
55
8.3k
A designer walks into a library…
pauljervisheath
211
24k
Automating Front-end Workflow
addyosmani
1370
210k
Code Review Best Practice
trishagee
74
20k
Transcript
.BUFSJBM$PNQPOFOUT GPS"OESPJE ؔϞό ,B[VLJ8BUBOBCF
1SPpMF w ͳ w 5XJUUFS!/BCF$PUU w (JU)VC/6NFSP"OE%FW w 'FOSJS*OD w
"OESPJE"QQ%FWFMPQFS
⚠JTBMQIB⚠
BMQIB w .BUFSJBM5IFNJOH w $PMPS 4IBQF 5ZQPHSBQIZ5IFNJOH w %BSL5IFNF
w /FX$PNQPOFOUT w 6QEBUF$PNQPOFOUT w #VHpYFUD
BMQIB w .BUFSJBM5IFNJOH w $PMPS 4IBQF 5ZQPHSBQIZ5IFNJOH w %BSL5IFNF
w /FX$PNQPOFOUT w 6QEBUF$PNQPOFOUT w #VHpYFUD
/FX$PNQPOFOUT w &YUFOEFE'MPBUJOH"DUJPO#VUUPO w .BUFSJBM#VUUPO5PHHMF(SPVQ
&YUFOEFE'"#
&YUFOEFE'"# <com.google.android.material.floatingactionbutton.ExtendedF loatingActionButton android:id="@+id/extendedFab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:text="Create" app:icon="@drawable/ic_add" />
&YUFOEFE'"# extendedFab.extend() extendedFab.shrink()
.BUFSJBM#VUUPO5PHHMF(SPVQ
.BUFSJBM#VUUPO5PHHMF(SPVQ <com.google.android.material.button.MaterialButtonToggleGroup android:id="@+id/singleSelectToggleGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" app:singleSelection="true"> <com.google.android.material.button.MaterialButton style=“?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Select1" /> <com.google.android.material.button.MaterialButton style="?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select2" /> </com.google.android.material.button.MaterialButtonToggleGroup>
.BUFSJBM#VUUPO5PHHMF(SPVQ w DIFDLFE#VUUPO*EDIFDLFE#VUUPO*ET w DIFDL JE*OU w BEE0O#VUUPO$IFDLFE-JTUFOFS w
DMFBS$IFDLFE w "OENPSFʜ
6QEBUFE$PNQPOFOUT w 5FYU*OQVU-BZPVU w #PUUPN/BWJHBUJPO w 4OBDLCBS w $BSE7JFX w
0UIFST
5FYU*OQVU-BZPVU
5FYU*OQVU-BZPVU <com.google.android.material.textfield.TextInputLayout android:id="@+id/dropdownFilledTextInputLayout" style="@style/ Widget.MaterialComponents.TextInputLayout.FilledBox.Exposed DropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content"> <androidx.appcompat.widget.AppCompatAutoCompleteTextView android:id="@+id/filledAutoCompleteTextView"
android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" /> </com.google.android.material.textfield.TextInputLayout>
5FYU*OQVU-BZPVU val adapter = ArrayAdapter( context, android.R.layout.simple_spinner_dropdown_item, arrayOf("Item 1", "Item
2", "Item 3", "Item 4") ) filledAutoCompleteTextView.setAdapter(adapter)
5FYU*OQVU-BZPVU w BQQTUBSU*DPO%SBXBCMFBQQFOE*DPO%SBXBCMF w TFU4UBSU*DPO0O$MJDL-JTUFOFS TFU&OE*DPO0O$MJDL-JTUFOFS
#PUUPN/BWJHBUJPO
#PUUPN/BWJHBUJPO // show only badge bottomNavigation.showBadge(R.id.navigation_item_1) // show badge with
number val badgeDrawable = bottomNavigation.showBadge(R.id.navigation_item_2) badgeDrawable.apply { number = 5000 maxCharacterCount = 5 // default is 4 } // dismiss badge bottomNavigation.removeBadge(R.id.navigation_item_1)
4OBDLCBS
4OBDLCBS Snackbar.make(view, "Message", Snackbar.LENGTH_LONG) .setAction("Action") { // Some action }
.setAnchorView(fab) .show() w TFU"ODIPS7JFX WJFX w FH'MPBUJOH"DUJPO#VUUPO
4OBDLCBS <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar"> <item name="snackbarStyle"> @style/Widget.MaterialComponents.Snackbar.FullWidth </item> </style>
$BSE7JFX
$BSE7JFX <com.google.android.material.card.MaterialCardView android:id=“@+id/cardView" android:layout_width="match_parent" android:layout_height="match_parent" android:checkable="true"> </com.google.android.material.card.MaterialCardView> cardView.isSelected = true
// or false
0UIFS w 4VQQPSUT.BUFSJBM5IFNJOH $PMPS 4IBQF 5ZQPHSBQIZ %BSL5IFNF w
.BUFSJBM%JBMPH#VJMEFS w 4FMFDUJPO$POUSPM 4XJUDI 3BEJP#VUUPO 5PHHMF#VUUPO w #PUUPN4IFFU w "OENPSFʜ
*OEFWFMPQNFOU
w IUUQTHJUIVCDPNNBUFSJBMDPNQPOFOUTNBUFSJBM DPNQPOFOUTBOESPJE