Day44 of #100DaysOfCode
Hii folks 🙌
Today I learned to add Material Design Components and icons to our app.
Unit 2: Layouts
Pathway 2: Get user input in an app — Part 2
Source: https://developer.android.com/courses/android-basics-kotlin/course
Create a more polished user experience
So, we will start by adding the dependency to the app/build.gradle
dependencies {
...
implementation 'com.google.android.material:material:<version>'
}After this we will replace the cost of service EditText with a Material text field (which is composed of a TextInputLayout and TextInputEditText) in the activity.xml file.
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/cost_of_service"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:hint="@string/cost_of_service"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/cost_of_service_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal" />
</com.google.android.material.textfield.TextInputLayout>Now, we will modify our mainActivity.kt file by changing the user input from the TextInputEditText element with resource ID cost_of_service_edit_text.
private fun calculateTip() {
// Get the decimal value from the cost of service text field
val stringInTextField = binding.costOfServiceEditText.text.toString()
val cost = stringInTextField.toDoubleOrNull()
...
}Now the app looks something like this:
Then in the activity_main.xml layout, we will change the XML tag from Switch to com.google.android.material.switchmaterial.SwitchMaterial.
...<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/round_up_switch"
android:layout_width="0dp"
android:layout_height="wrap_content" ... />...
After that we will add icons to the apps from the Material Icons. We will insert icons and position elements in the app.
The Design view should look like this. All three icons are correctly positioned.
We will add the OutlinedBox style to the app’s text field, and all the text now looks consistent!
Today I Learned:
- To use
ConstraintLayoutto position elements in our layout. - We test our app for edges cases (e.g. rotating your app in landscape mode) and make improvements where applicable.
That is all for Day44 ✅
Thanks for reading, See you tomorrow!
