Material improvements - Google I/O 2016

Android Developers · 62K views · 2016 · 40:27

Open on YouTube

UX & UI designSoftware (other)talkdated

Why Stack Overflow recommends it

Stack Overflow users link it when asking or answering how to implement material-style expandable RecyclerView items, shared element transitions, and animated list changes.

Recommended by 1 people across 1 different months, 2017 to 2018.

What it is

Nick Butcher's Google I/O 2016 session walks through how the material design principles (tangibility, bold graphic design, meaningful motion) improved his Plaid app. It shows concrete Android code examples, including animated list items and transitions.

What people said

Strong rec nic · 2017-01 · Stack Overflow · on “Executing a "Shared Element Transition" from an Activity to a Fragment”

Just quoting the Android Docs [LINK] : Start an activity with a shared element Assign a common name to the shared elements in both layouts with the android:transitionName attribute. From what I see, both of your XMLs don't share the same android:transitionName . Try changing both android:transitionName in the XML layout (activity_main.xml & dialog_sheet.xml) to a same string, for example: transition_plane_feather I havent't tested the codes myself, but I think that might be a good starting point. Bonus Tip If you're planning to fully implement Material Design without compatibility with lower API levels (pre-Lollipop), I highly recommend checking out a sample made by a Google UI/UX Designer:

Cites david.mar22 · 2017-04 · Stack Overflow · on “Expand and Collapse cards in RecyclerView”

i'm working on a RecyclerView in Android which should contains expandable cards. I've already seen some questions like this [LINK] or this [LINK] but I can't figure out how to manage some things. In my app (pic below) the expandable part is the one with the "maps" icon and "plus" icon. Card expansion [LINK] During Google I/O 2016, Nick Butcher [this video] explained some of his code but i can't solve the part in which he divides the layout in two parts (the one that is always visibile itemView , and the expandable one, details ) in the onBindViewHolder method. final boolean isExpanded = position==mExpandedPosition; holder.details.setVisibility(isExpanded?View.VISIBLE:View.GONE); holder.itemView.s

Cites Kannan_SJD · 2017-08 · Stack Overflow · on “How to implement Accordion in Android?”

I have tried this intially when I started with this. As per this google i/o I have used recyclerview. Refer: [this video]

Cites Aleksandar Stefanović · 2017-09 · Stack Overflow · on “TransitionManager doesn't animate color change”

I've followed Nick Butcher's Material Improvements I/O 2016 talk [this video] , and at about 6:00, he starts talking about animating list items. I've implemented the feature exactly as he was doing it, and the bound changes animate correctly, but color changes don't animate, despite him explicitly saying they would: [LINK] This is what the code looks like: This is the relevant part of the RecyclerView.Adapter class: override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item: Pair<String, String> = items[position] holder.title.text = item.first holder.subtitle.text = item.second val isExpanded = position == expandedPosition holder.subtitle.visibility = if (isExpanded) View.VISIBLE

Cites FalloutBoy · 2018-11 · Stack Overflow · on “How to implement Material Design parent-child transition with recyclerview”

I'm trying to implement this [LINK] like others before me. What I find so far: How to implement the "parent-to-child" navigational transition as prescribed by Material Design [LINK] Material Design parent-child navigational transition recyclerview entry to detail fragment [LINK] How to create Parent-child transition in which list item lifts out and become details screen [LINK] Custom fragment transition parent-to-child navigation setExitTransition not showing [LINK] [LINK] [LINK] [LINK] [this video] What I've so far: [LINK] Parent Fragment @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initViewModel(); setupRecyclerView(