Skip to content

[MaterialDatePicker + MaterialTimePicker] (Maybe others as well) slow load time #1910

Open
@chennemann

Description

@chennemann

Description:

I want to use those components in my app but I notice some really unusual loading speed for the initial load after the app is cold started. It takes up to three seconds for the pickers to show up after they are requested.

ezgif-1-496c20434c9e

That behaviour happens when I start the application from Android Studio on my phone or in the emulator. When I use the Sample App for the Material Components from the PlayStore it's behaving normally (so no opening delay). I'm actually kinda clueless what the reasoning might be.

Consecutive clicks are faster.

Expected behavior:

The Pickers should show up nearly instantaneously.

Source code:

This screencapture is from a minimal application that consists just of one Activity:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<Button>(R.id.datePicker).setOnClickListener {
            MaterialDatePicker.Builder.datePicker().build().show(supportFragmentManager, "DATE_PICKER")
        }

        findViewById<Button>(R.id.timePicker).setOnClickListener {
            MaterialTimePicker.Builder().build().show(supportFragmentManager, "DATE_PICKER")
        }
    }
}

The layout just contains the two buttons:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Open Date Picker"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.33" />

    <Button
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Open Time Picker"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/datePicker" />

</androidx.constraintlayout.widget.ConstraintLayout>

Android API version: 10

Material Library version: 1.3.0-alpha04

Device: OnePlus 6T & Emulator in Android Studio

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions