When is the R class generated?
Build time
What are the units of measure for dimensions and their purposes? (6)
dp
density-independent pixels
Scales to device’s screen’s physical density
(use this for non-text dimens)
sp
scale-independent pixels
Scales to both device screen size and user’s font size preference
(use this for font size, line height)
pt
point
1/72 inch assuming a 72dpi screen
px
pixels
Not scalable, not recommended
mm
millimetres
in
inches
What is the syntax for creating a Toast?
What is the syntax for creating a Snackbar?
Toast.makeText(context, message, duration ).show( )
context - usually this
message - String to be displayed
duration - Toast.LENGTH_*
Snackbar.make(contextView, string, duration).show()
Using the Layout Editor (Design tab) how do you add a new font?
EITHER
a) ship font files as part of APK (increases app size; not recommended)
- Select “Add font to project” radio button
- Click OK
OR
b) download font at runtime if not already available on device
- Select the “Create downloadable font” radio button
- Add following to Manifest:
^meta-data android:name=”preloaded_fonts” android:resource=”@array/preloaded_fonts”/^
How to re use the properties of a styled component?
Right click > Extract style
How do you hide the keyboard?
How do you show the keyboard?
=== HIDE KEYBOARD===
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
=== SHOW KEYBOARD===
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText, 0)
If a view isn’t getting the focus when needed, what method could be used?
View.requestFocus( )
How do you apply a chainstyle?
What are the different types of chainstyle?
Apply with:
app:layout_constraintHorizontal_chainStyle=”spread”
How to add a baseline constraint?
app:layout_constraintBaseline_toBaselineOf=”@id/view”
What can a ^merge^ tag be used for in a layout xml?
Eliminate redundant layouts.
An example of a redundant layout would be ConstraintLayout > LinearLayout > TextView, where the system might be able to eliminate the LinearLayout.
What does CDATA enable?
What is the syntax for using CDATA?
HTML formatting in String resources.
^string name=”title”^^![CDATA[^h3^My String As Header^/h3^]]^^/string^
When were start and end brought in to replace left and right?
Why were they brought in?
How to handle this when targeting APIs pre-change?
API 17
To support RTL flow
When targetting API 16 or lower, use both start/end AND left/right
What is the precedence of styling being applied?
View
Style
Default Style
- provided by Android
Theme
TextAppearance
When adding a font to a theme, what are the names of the two attributes that need to be added?
android: fontFamily
fontFamily
Style attributes override Theme attributes, so in a TextView how do you make the Theme’s styling take precedence?
android:textAppearance=”@style/TextAppearance.MyTheme”
What is the dependency for Material Components?
implementation ‘com.google.android.material:material:$version’
how do you add a FAB to a Screen with a ScrollView containing a ConstraintLayout?
2. What is the syntax for inheriting one of these templates in your style?
What is the difference between a Theme and a ThemeOverlay?
Theme - global theme for the entire app
ThemeOverlay - overrides the app theme for specific views, especially the toolbar
What is the syntax for applying a Dark Theme to a Toolbar?
^androidx.appcompat.widget.Toolbar
android:theme=”@style/ThemeOverlay.MaterialComponents.Dark.ActionBar”
…
android:background=”?attr/colorPrimaryDark”
What is the colorOnPrimary attribute?
a color that meets accessibility guidelines for text or iconography when drawn on top of the primary color
colorOnSecondary does the same for text on the secondary color
What is the url for the Material Components Color Tool?
material.io/tools/color/